Search in sources :

Example 1 with FixedWindowRollingPolicy

use of ch.qos.logback.core.rolling.FixedWindowRollingPolicy in project cdap-ingest by caskdata.

the class TailerLogUtils method getSizeLogger.

public static Logger getSizeLogger(String file, String fileSize) {
    LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
    RollingFileAppender fileAppender = new RollingFileAppender();
    fileAppender.setContext(loggerContext);
    fileAppender.setFile(file);
    fileAppender.setAppend(true);
    FixedWindowRollingPolicy rollingPolicy = new FixedWindowRollingPolicy();
    rollingPolicy.setContext(loggerContext);
    rollingPolicy.setFileNamePattern(file + "%i");
    rollingPolicy.setParent(fileAppender);
    rollingPolicy.start();
    rollingPolicy.setMaxIndex(100);
    fileAppender.setRollingPolicy(rollingPolicy);
    SizeBasedTriggeringPolicy triggeringPolicy = new SizeBasedTriggeringPolicy();
    triggeringPolicy.setContext(loggerContext);
    triggeringPolicy.setMaxFileSize(fileSize);
    triggeringPolicy.start();
    fileAppender.setTriggeringPolicy(triggeringPolicy);
    PatternLayoutEncoder layoutEncoder = new PatternLayoutEncoder();
    layoutEncoder.setContext(loggerContext);
    layoutEncoder.setPattern("[%d  %-5p %c{1}] %msg%n");
    layoutEncoder.start();
    fileAppender.setEncoder(layoutEncoder);
    fileAppender.start();
    // configures  logger
    Logger rootLogger = loggerContext.getLogger(BaseTailerTest.class.getName() + "size");
    rootLogger.setLevel(Level.DEBUG);
    rootLogger.addAppender(fileAppender);
    return rootLogger;
}
Also used : PatternLayoutEncoder(ch.qos.logback.classic.encoder.PatternLayoutEncoder) FixedWindowRollingPolicy(ch.qos.logback.core.rolling.FixedWindowRollingPolicy) RollingFileAppender(ch.qos.logback.core.rolling.RollingFileAppender) SizeBasedTriggeringPolicy(ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy) Logger(ch.qos.logback.classic.Logger) LoggerContext(ch.qos.logback.classic.LoggerContext)

Example 2 with FixedWindowRollingPolicy

use of ch.qos.logback.core.rolling.FixedWindowRollingPolicy in project dropwizard by dropwizard.

the class FileAppenderFactory method buildAppender.

protected FileAppender<E> buildAppender(LoggerContext context) {
    if (archive) {
        final RollingFileAppender<E> appender = new RollingFileAppender<>();
        appender.setFile(currentLogFilename);
        appender.setBufferSize(new FileSize(bufferSize.toBytes()));
        if (maxFileSize != null && !archivedLogFilenamePattern.contains("%d")) {
            final FixedWindowRollingPolicy rollingPolicy = new FixedWindowRollingPolicy();
            rollingPolicy.setContext(context);
            rollingPolicy.setMaxIndex(getArchivedFileCount());
            rollingPolicy.setFileNamePattern(getArchivedLogFilenamePattern());
            rollingPolicy.setParent(appender);
            rollingPolicy.start();
            appender.setRollingPolicy(rollingPolicy);
            final SizeBasedTriggeringPolicy<E> triggeringPolicy = new SizeBasedTriggeringPolicy<>();
            triggeringPolicy.setMaxFileSize(new FileSize(maxFileSize.toBytes()));
            triggeringPolicy.setContext(context);
            triggeringPolicy.start();
            appender.setTriggeringPolicy(triggeringPolicy);
            return appender;
        } else {
            final TimeBasedFileNamingAndTriggeringPolicy<E> triggeringPolicy;
            if (maxFileSize == null) {
                triggeringPolicy = new DefaultTimeBasedFileNamingAndTriggeringPolicy<>();
            } else {
                final SizeAndTimeBasedFNATP<E> maxFileSizeTriggeringPolicy = new SizeAndTimeBasedFNATP<>();
                maxFileSizeTriggeringPolicy.setMaxFileSize(new FileSize(maxFileSize.toBytes()));
                triggeringPolicy = maxFileSizeTriggeringPolicy;
            }
            triggeringPolicy.setContext(context);
            final TimeBasedRollingPolicy<E> rollingPolicy = new TimeBasedRollingPolicy<>();
            rollingPolicy.setContext(context);
            rollingPolicy.setFileNamePattern(archivedLogFilenamePattern);
            rollingPolicy.setTimeBasedFileNamingAndTriggeringPolicy(triggeringPolicy);
            triggeringPolicy.setTimeBasedRollingPolicy(rollingPolicy);
            rollingPolicy.setMaxHistory(archivedFileCount);
            appender.setRollingPolicy(rollingPolicy);
            appender.setTriggeringPolicy(triggeringPolicy);
            rollingPolicy.setParent(appender);
            rollingPolicy.start();
            return appender;
        }
    }
    final FileAppender<E> appender = new FileAppender<>();
    appender.setFile(currentLogFilename);
    appender.setBufferSize(new FileSize(bufferSize.toBytes()));
    return appender;
}
Also used : FileAppender(ch.qos.logback.core.FileAppender) RollingFileAppender(ch.qos.logback.core.rolling.RollingFileAppender) FixedWindowRollingPolicy(ch.qos.logback.core.rolling.FixedWindowRollingPolicy) RollingFileAppender(ch.qos.logback.core.rolling.RollingFileAppender) SizeBasedTriggeringPolicy(ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy) SizeAndTimeBasedFNATP(ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP) TimeBasedRollingPolicy(ch.qos.logback.core.rolling.TimeBasedRollingPolicy) FileSize(ch.qos.logback.core.util.FileSize)

Example 3 with FixedWindowRollingPolicy

use of ch.qos.logback.core.rolling.FixedWindowRollingPolicy in project sonarqube by SonarSource.

the class LogbackHelperTest method createRollingPolicy_size.

@Test
public void createRollingPolicy_size() {
    props.set("sonar.log.rollingPolicy", "size:1MB");
    props.set("sonar.log.maxFiles", "20");
    LoggerContext ctx = underTest.getRootContext();
    LogbackHelper.RollingPolicy policy = underTest.createRollingPolicy(ctx, props, "sonar");
    Appender appender = policy.createAppender("SONAR_FILE");
    assertThat(appender).isInstanceOf(RollingFileAppender.class);
    // max 20 files of 1Mb
    RollingFileAppender fileAppender = (RollingFileAppender) appender;
    FixedWindowRollingPolicy rollingPolicy = (FixedWindowRollingPolicy) fileAppender.getRollingPolicy();
    assertThat(rollingPolicy.getMaxIndex()).isEqualTo(20);
    assertThat(rollingPolicy.getFileNamePattern()).endsWith("sonar.%i.log");
    SizeBasedTriggeringPolicy triggeringPolicy = (SizeBasedTriggeringPolicy) fileAppender.getTriggeringPolicy();
    assertThat(triggeringPolicy.getMaxFileSize()).isEqualTo("1MB");
}
Also used : ConsoleAppender(ch.qos.logback.core.ConsoleAppender) FileAppender(ch.qos.logback.core.FileAppender) Appender(ch.qos.logback.core.Appender) RollingFileAppender(ch.qos.logback.core.rolling.RollingFileAppender) FixedWindowRollingPolicy(ch.qos.logback.core.rolling.FixedWindowRollingPolicy) RollingFileAppender(ch.qos.logback.core.rolling.RollingFileAppender) SizeBasedTriggeringPolicy(ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy) LoggerContext(ch.qos.logback.classic.LoggerContext) Test(org.junit.Test)

Example 4 with FixedWindowRollingPolicy

use of ch.qos.logback.core.rolling.FixedWindowRollingPolicy in project spring-boot by spring-projects.

the class DefaultLogbackConfiguration method setRollingPolicy.

private void setRollingPolicy(RollingFileAppender<ILoggingEvent> appender, LogbackConfigurator config, String logFile) {
    FixedWindowRollingPolicy rollingPolicy = new FixedWindowRollingPolicy();
    rollingPolicy.setFileNamePattern(logFile + ".%i");
    appender.setRollingPolicy(rollingPolicy);
    rollingPolicy.setParent(appender);
    config.start(rollingPolicy);
}
Also used : FixedWindowRollingPolicy(ch.qos.logback.core.rolling.FixedWindowRollingPolicy)

Example 5 with FixedWindowRollingPolicy

use of ch.qos.logback.core.rolling.FixedWindowRollingPolicy in project sling by apache.

the class LogWriter method createAppender.

public Appender<ILoggingEvent> createAppender(final Context context, final Encoder<ILoggingEvent> encoder) {
    SlingContextUtil ctxUtil = new SlingContextUtil(context, this);
    OutputStreamAppender<ILoggingEvent> appender;
    if (FILE_NAME_CONSOLE.equals(fileName)) {
        appender = new ConsoleAppender<ILoggingEvent>();
        appender.setName(FILE_NAME_CONSOLE);
    } else {
        ctxUtil.addInfo("Configuring appender " + getFileName());
        SlingRollingFileAppender<ILoggingEvent> rollingAppender = new SlingRollingFileAppender<ILoggingEvent>();
        rollingAppender.setAppend(true);
        rollingAppender.setFile(getFileName());
        Matcher sizeMatcher = SIZE_SPEC.matcher(getLogRotation());
        if (sizeMatcher.matches()) {
            // group 1 is the base size and is an integer number
            final long baseSize = Long.parseLong(sizeMatcher.group(1));
            // this will take the final size value
            final long maxSize;
            // group 2 is optional and is the size spec. If not null it is
            // at least one character long and the first character is enough
            // for use to know (the second is of no use here)
            final String factorString = sizeMatcher.group(2);
            if (factorString == null) {
                // no factor define, hence no multiplication
                maxSize = baseSize;
            } else {
                switch(factorString.charAt(0)) {
                    case 'k':
                    case 'K':
                        maxSize = baseSize * FACTOR_KB;
                        break;
                    case 'm':
                    case 'M':
                        maxSize = baseSize * FACTOR_MB;
                        break;
                    case 'g':
                    case 'G':
                        maxSize = baseSize * FACTOR_GB;
                        break;
                    default:
                        // we don't really expect this according to the
                        // pattern
                        maxSize = baseSize;
                }
            }
            SizeBasedTriggeringPolicy<ILoggingEvent> triggeringPolicy = new SizeBasedTriggeringPolicy<ILoggingEvent>();
            triggeringPolicy.setMaxFileSize(String.valueOf(maxSize));
            triggeringPolicy.setContext(context);
            triggeringPolicy.start();
            rollingAppender.setTriggeringPolicy(triggeringPolicy);
            FixedWindowRollingPolicy pol = new FixedWindowRollingPolicy();
            pol.setMinIndex(1);
            pol.setMaxIndex(getLogNumber());
            pol.setFileNamePattern(getFileName() + "%i");
            pol.setContext(context);
            pol.setParent(rollingAppender);
            pol.start();
            rollingAppender.setRollingPolicy(pol);
        } else {
            TimeBasedRollingPolicy<ILoggingEvent> policy = new TimeBasedRollingPolicy<ILoggingEvent>();
            String fileNamePattern = createFileNamePattern(getFileName(), getLogRotation());
            policy.setFileNamePattern(fileNamePattern);
            policy.setMaxHistory(getLogNumber());
            policy.setContext(context);
            policy.setParent(rollingAppender);
            policy.start();
            rollingAppender.setTriggeringPolicy(policy);
            ctxUtil.addInfo("Configured TimeBasedRollingPolicy with pattern " + fileNamePattern);
        }
        rollingAppender.setLogWriter(this);
        rollingAppender.setName(getAppenderName());
        appender = rollingAppender;
    }
    if (bufferedLogging && encoder instanceof LayoutWrappingEncoder) {
        ((LayoutWrappingEncoder) encoder).setImmediateFlush(false);
        ctxUtil.addInfo("Setting immediateFlush to false");
    } else {
        ctxUtil.addInfo("immediateFlush property not modified. Defaults to true");
    }
    appender.setContext(context);
    appender.setEncoder(encoder);
    appender.start();
    ctxUtil.addInfo("Completed configuring appender with name " + getFileName());
    return appender;
}
Also used : FixedWindowRollingPolicy(ch.qos.logback.core.rolling.FixedWindowRollingPolicy) Matcher(java.util.regex.Matcher) SlingContextUtil(org.apache.sling.commons.log.logback.internal.util.SlingContextUtil) ILoggingEvent(ch.qos.logback.classic.spi.ILoggingEvent) SlingRollingFileAppender(org.apache.sling.commons.log.logback.internal.util.SlingRollingFileAppender) SizeBasedTriggeringPolicy(ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy) LayoutWrappingEncoder(ch.qos.logback.core.encoder.LayoutWrappingEncoder) TimeBasedRollingPolicy(ch.qos.logback.core.rolling.TimeBasedRollingPolicy)

Aggregations

FixedWindowRollingPolicy (ch.qos.logback.core.rolling.FixedWindowRollingPolicy)7 SizeBasedTriggeringPolicy (ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy)6 RollingFileAppender (ch.qos.logback.core.rolling.RollingFileAppender)4 LoggerContext (ch.qos.logback.classic.LoggerContext)3 PatternLayoutEncoder (ch.qos.logback.classic.encoder.PatternLayoutEncoder)2 ILoggingEvent (ch.qos.logback.classic.spi.ILoggingEvent)2 FileAppender (ch.qos.logback.core.FileAppender)2 TimeBasedRollingPolicy (ch.qos.logback.core.rolling.TimeBasedRollingPolicy)2 SlingRollingFileAppender (org.apache.sling.commons.log.logback.internal.util.SlingRollingFileAppender)2 Test (org.junit.Test)2 Logger (ch.qos.logback.classic.Logger)1 Appender (ch.qos.logback.core.Appender)1 ConsoleAppender (ch.qos.logback.core.ConsoleAppender)1 LayoutWrappingEncoder (ch.qos.logback.core.encoder.LayoutWrappingEncoder)1 SizeAndTimeBasedFNATP (ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP)1 FileSize (ch.qos.logback.core.util.FileSize)1 Matcher (java.util.regex.Matcher)1 SlingContextUtil (org.apache.sling.commons.log.logback.internal.util.SlingContextUtil)1