protected RollingPolicy buildRollingPolicy(FileAppender<?> appender, String fileStr) { FixedWindowRollingPolicy rollingPolicy = new FixedWindowRollingPolicy(); rollingPolicy.setParent(appender); rollingPolicy.setContext(loggerContext); rollingPolicy.setMinIndex(1); rollingPolicy.setMaxIndex(maxLogBackupFiles); rollingPolicy.setFileNamePattern(fileStr + ".%i"); rollingPolicy.start(); return rollingPolicy; }
public static void rollingPolicyForAppender(RollingFileAppender rollingFileAppender, String maxFileSize, String totalSizeCap, int maxHistory) { SizeAndTimeBasedRollingPolicy rollingPolicy = new SizeAndTimeBasedRollingPolicy(); rollingPolicy.setContext(LOGGER_CONTEXT); rollingPolicy.setMaxHistory(maxHistory); rollingPolicy.setMaxFileSize(FileSize.valueOf(maxFileSize)); rollingPolicy.setTotalSizeCap(FileSize.valueOf(totalSizeCap)); rollingPolicy.setFileNamePattern(rollingFileAppender.rawFileProperty() + ".%d{yyyy-MM-dd}.%i.gz"); rollingPolicy.setParent(rollingFileAppender); rollingFileAppender.setRollingPolicy(rollingPolicy); rollingPolicy.start(); }
@Override public void close() throws IOException { if (rfAppender != null) { rfAppender.stop(); } }
RollingFileAppender<ILoggingEvent> fileAppender = new RollingFileAppender<ILoggingEvent>(); fileAppender.setContext(loggerContext); fileAppender.setName("application"); fileAppender.setFile(file); fileAppender.setAppend(true); TimeBasedRollingPolicy<ILoggingEvent> policy = new TimeBasedRollingPolicy<ILoggingEvent>(); policy.setContext(loggerContext); policy.setMaxHistory(maxHistory); policy.setFileNamePattern(file + ".%d{yyyy-MM-dd}"); policy.setParent(fileAppender); policy.start(); fileAppender.setRollingPolicy(policy); encoder.setPattern("%date [%thread] %-5level %logger (%file:%line\\) - %msg%n"); encoder.start(); fileAppender.setEncoder(encoder); fileAppender.start();
protected FileAppender<E> buildAppender(LoggerContext context) { if (archive) { final RollingFileAppender<E> appender = new RollingFileAppender<>(); appender.setContext(context); appender.setFile(currentLogFilename); appender.setBufferSize(new FileSize(bufferSize.toBytes())); 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); final TimeBasedRollingPolicy<E> rollingPolicy; if (maxFileSize == null) { rollingPolicy = new TimeBasedRollingPolicy<>(); final TimeBasedFileNamingAndTriggeringPolicy<E> triggeringPolicy = new DefaultTimeBasedFileNamingAndTriggeringPolicy<>(); triggeringPolicy.setContext(context); triggeringPolicy.setTimeBasedRollingPolicy(rollingPolicy); appender.setTriggeringPolicy(triggeringPolicy); } else {
String datePattern, int maxBackupIndex) { RollingFileAppender appender = new RollingFileAppender(); appender.setContext(LogbackLoggerContextUtil.getLoggerContext()); appender.setName(productName + "." + file.replace(File.separatorChar, '.') + ".Appender"); appender.setAppend(true); appender.setFile(LoggerHelper.getLogFile(productName, file)); TimeBasedRollingPolicy rolling = new TimeBasedRollingPolicy(); rolling.setParent(appender); if (maxBackupIndex >= 0) { rolling.setMaxHistory(maxBackupIndex); rolling.setFileNamePattern(LoggerHelper.getLogFile(productName, file) + ".%d{" + datePattern + "}.%i"); rolling.setContext(LogbackLoggerContextUtil.getLoggerContext()); SizeAndTimeBasedFNATP fnatp = new SizeAndTimeBasedFNATP(); setMaxFileSize(fnatp, size); fnatp.setTimeBasedRollingPolicy(rolling); rolling.setTimeBasedFileNamingAndTriggeringPolicy(fnatp); rolling.start(); appender.setRollingPolicy(rolling); layout.setContext(LogbackLoggerContextUtil.getLoggerContext()); layout.start(); appender.setLayout(layout);
@Override public FileAppender<ILoggingEvent> createAppender(String appenderName) { RollingFileAppender<ILoggingEvent> appender = new RollingFileAppender<>(); appender.setContext(context); appender.setName(appenderName); String filePath = new File(logsDir, filenamePrefix + ".log").getAbsolutePath(); appender.setFile(filePath); SizeBasedTriggeringPolicy<ILoggingEvent> trigger = new SizeBasedTriggeringPolicy<>(); trigger.setMaxFileSize(FileSize.valueOf(size)); trigger.setContext(context); trigger.start(); appender.setTriggeringPolicy(trigger); FixedWindowRollingPolicy rollingPolicy = new FixedWindowRollingPolicy(); rollingPolicy.setContext(context); rollingPolicy.setFileNamePattern(StringUtils.replace(filePath, filenamePrefix + ".log", filenamePrefix + ".%i.log")); rollingPolicy.setMinIndex(1); rollingPolicy.setMaxIndex(maxFiles); rollingPolicy.setParent(appender); rollingPolicy.start(); appender.setRollingPolicy(rollingPolicy); return appender; } }
protected ch.qos.logback.core.Appender getSizeRollingAppender(String productName, String file, String encoding, String size, int maxBackupIndex) { RollingFileAppender appender = new RollingFileAppender(); appender.setContext(LogbackLoggerContextUtil.getLoggerContext()); appender.setName(productName + "." + file.replace(File.separatorChar, '.') + ".Appender"); appender.setAppend(true); appender.setFile(LoggerHelper.getLogFile(productName, file)); SizeBasedTriggeringPolicy triggerPolicy = new SizeBasedTriggeringPolicy(); setMaxFileSize(triggerPolicy, size); triggerPolicy.setContext(LogbackLoggerContextUtil.getLoggerContext()); triggerPolicy.start(); FixedWindowRollingPolicy rolling = new FixedWindowRollingPolicy(); rolling.setContext(LogbackLoggerContextUtil.getLoggerContext()); rolling.setParent(appender); rolling.setFileNamePattern(LoggerHelper.getLogFile(productName, file) + ".%i"); rolling.setParent(appender); if (maxBackupIndex >= 0) { rolling.setMaxIndex(maxBackupIndex); rolling.start(); appender.setRollingPolicy(rolling); appender.setTriggeringPolicy(triggerPolicy); layout.setContext(LogbackLoggerContextUtil.getLoggerContext()); layout.start(); appender.setLayout(layout);
@Override public FileAppender<ILoggingEvent> createAppender(String appenderName) { RollingFileAppender<ILoggingEvent> appender = new RollingFileAppender<>(); appender.setContext(context); appender.setName(appenderName); String filePath = new File(logsDir, filenamePrefix + ".log").getAbsolutePath(); appender.setFile(filePath); TimeBasedRollingPolicy rollingPolicy = new TimeBasedRollingPolicy(); rollingPolicy.setContext(context); rollingPolicy.setFileNamePattern(StringUtils.replace(filePath, filenamePrefix + ".log", filenamePrefix + ".%d{" + datePattern + "}.log")); rollingPolicy.setMaxHistory(maxFiles); rollingPolicy.setParent(appender); rollingPolicy.start(); appender.setRollingPolicy(rollingPolicy); return appender; } }
private RollingFileAppender<ILoggingEvent> rollingAppender(String file) { RollingFileAppender<ILoggingEvent> rollingFileAppender = new RollingFileAppender<>(); rollingFileAppender.setEncoder(LogHelper.encoder("%date{ISO8601} - %msg%n")); rollingFileAppender.setContext(LogHelper.LOGGER_CONTEXT); rollingFileAppender.setFile(getEffectiveLogDirectory(file)); rollingFileAppender.setName(UUID.randomUUID().toString()); LogHelper.rollingPolicyForAppender( rollingFileAppender, "5 MB", "20 MB", 4 ); rollingFileAppender.start(); return rollingFileAppender; }
protected TriggeringPolicy buildTriggeringPolicy() { SizeBasedTriggeringPolicy triggeringPolicy = new SizeBasedTriggeringPolicy(); triggeringPolicy.setContext(loggerContext); triggeringPolicy.setMaxFileSize(FileSize.valueOf(maxLogFileSize)); triggeringPolicy.start(); return triggeringPolicy; }
private void setRollingPolicy(RollingFileAppender<ILoggingEvent> appender, LogbackConfigurator config, String logFile) { SizeAndTimeBasedRollingPolicy<ILoggingEvent> rollingPolicy = new SizeAndTimeBasedRollingPolicy<>(); rollingPolicy.setFileNamePattern(logFile + ".%d{yyyy-MM-dd}.%i.gz"); setMaxFileSize(rollingPolicy, this.patterns.getProperty("logging.file.max-size", MAX_FILE_SIZE)); rollingPolicy.setMaxHistory(this.patterns.getProperty("logging.file.max-history", Integer.class, CoreConstants.UNBOUND_HISTORY)); appender.setRollingPolicy(rollingPolicy); rollingPolicy.setParent(appender); config.start(rollingPolicy); }
@Override protected RollingPolicy buildRollingPolicy(FileAppender<?> appender, String fileStr) { SizeAndTimeBasedRollingPolicy rollingPolicy = new SizeAndTimeBasedRollingPolicy(); rollingPolicy.setParent(appender); rollingPolicy.setContext(loggerContext); if (getMaxLogFileSize() == null) { rollingPolicy.setFileNamePattern(fileStr + "%d{" + datePattern + "}"); } else { rollingPolicy.setMaxFileSize(FileSize.valueOf(getMaxLogFileSize())); rollingPolicy.setFileNamePattern(fileStr + "%d{" + datePattern + "}.%i"); } rollingPolicy.setMaxHistory(getMaxLogBackupFiles()); rollingPolicy.start(); return rollingPolicy; }
@Test public void createRollingPolicy_defaults() { LoggerContext ctx = underTest.getRootContext(); LogbackHelper.RollingPolicy policy = underTest.createRollingPolicy(ctx, props, "sonar"); FileAppender appender = policy.createAppender("SONAR_FILE"); assertThat(appender).isInstanceOf(RollingFileAppender.class); // max 5 daily files RollingFileAppender fileAppender = (RollingFileAppender) appender; TimeBasedRollingPolicy triggeringPolicy = (TimeBasedRollingPolicy) fileAppender.getTriggeringPolicy(); assertThat(triggeringPolicy.getMaxHistory()).isEqualTo(7); assertThat(triggeringPolicy.getFileNamePattern()).endsWith("sonar.%d{yyyy-MM-dd}.log"); }
private void setMaxFileSize( SizeAndTimeBasedRollingPolicy<ILoggingEvent> rollingPolicy, String maxFileSize) { try { rollingPolicy.setMaxFileSize(FileSize.valueOf(maxFileSize)); } catch (NoSuchMethodError ex) { // Logback < 1.1.8 used String configuration Method method = ReflectionUtils.findMethod( SizeAndTimeBasedRollingPolicy.class, "setMaxFileSize", String.class); ReflectionUtils.invokeMethod(method, rollingPolicy, maxFileSize); } }
RollingFileAppender<ILoggingEvent> fileAppender = new RollingFileAppender<ILoggingEvent>(); fileAppender.setContext(loggerContext); fileAppender.setName("application"); fileAppender.setFile(file); fileAppender.setAppend(true); TimeBasedRollingPolicy<ILoggingEvent> policy = new TimeBasedRollingPolicy<ILoggingEvent>(); policy.setContext(loggerContext); policy.setMaxHistory(maxHistory); policy.setFileNamePattern(file + ".%d{yyyy-MM-dd}"); policy.setParent(fileAppender); policy.start(); fileAppender.setRollingPolicy(policy); encoder.setPattern("%date [%thread] %-5level %logger (%file:%line\\) - %msg%n"); encoder.start(); fileAppender.setEncoder(encoder); fileAppender.start();
private FileAppender<ILoggingEvent> getAppender(String pluginId) { File pluginLogFileLocation = pluginLogFile(pluginId); RollingFileAppender<ILoggingEvent> rollingFileAppender = new RollingFileAppender<>(); rollingFileAppender.setEncoder(LogHelper.encoder()); rollingFileAppender.setContext(LogHelper.LOGGER_CONTEXT); rollingFileAppender.setFile(pluginLogFileLocation.getPath()); rollingFileAppender.setName(rollingFileAppenderName(pluginId)); LogHelper.rollingPolicyForAppender( rollingFileAppender, "5 MB", "20 MB", 7 ); rollingFileAppender.start(); return rollingFileAppender; }
@Test public void createRollingPolicy_time() { props.set("sonar.log.rollingPolicy", "time:yyyy-MM"); props.set("sonar.log.maxFiles", "20"); LoggerContext ctx = underTest.getRootContext(); LogbackHelper.RollingPolicy policy = underTest.createRollingPolicy(ctx, props, "sonar"); RollingFileAppender appender = (RollingFileAppender) policy.createAppender("SONAR_FILE"); // max 5 monthly files TimeBasedRollingPolicy triggeringPolicy = (TimeBasedRollingPolicy) appender.getTriggeringPolicy(); assertThat(triggeringPolicy.getMaxHistory()).isEqualTo(20); assertThat(triggeringPolicy.getFileNamePattern()).endsWith("sonar.%d{yyyy-MM}.log"); }
protected ch.qos.logback.core.Appender getLogbackDailyRollingFileAppender(String productName, String file, String encoding) { RollingFileAppender appender = new RollingFileAppender(); appender.setContext(LogbackLoggerContextUtil.getLoggerContext()); appender.setName(productName + "." + file.replace(File.separatorChar, '.') + ".Appender"); appender.setAppend(true); appender.setFile(LoggerHelper.getLogFile(productName, file)); TimeBasedRollingPolicy rolling = new TimeBasedRollingPolicy(); rolling.setParent(appender); rolling.setFileNamePattern(LoggerHelper.getLogFile(productName, file) + ".%d{yyyy-MM-dd}"); rolling.setContext(LogbackLoggerContextUtil.getLoggerContext()); rolling.start(); appender.setRollingPolicy(rolling); PatternLayout layout = new PatternLayout(); layout.setPattern(LoggerHelper.getPattern(productName)); layout.setContext(LogbackLoggerContextUtil.getLoggerContext()); layout.start(); appender.setLayout(layout); // 启动 appender.start(); return appender; }
protected ch.qos.logback.core.Appender getLogbackDailyRollingFileAppender(String productName, String file, String encoding) { RollingFileAppender appender = new RollingFileAppender(); appender.setContext(LogbackLoggerContextUtil.getLoggerContext()); appender.setName(productName + "." + file.replace(File.separatorChar, '.') + ".Appender"); appender.setAppend(true); appender.setFile(LoggerHelper.getLogFile(productName, file)); TimeBasedRollingPolicy rolling = new TimeBasedRollingPolicy(); rolling.setParent(appender); rolling.setFileNamePattern(LoggerHelper.getLogFile(productName, file) + ".%d{yyyy-MM-dd}"); rolling.setContext(LogbackLoggerContextUtil.getLoggerContext()); rolling.start(); appender.setRollingPolicy(rolling); PatternLayoutEncoder layout = new PatternLayoutEncoder(); layout.setPattern(LoggerHelper.getPattern(productName)); layout.setCharset(Charset.forName(encoding)); appender.setEncoder(layout); layout.setContext(LogbackLoggerContextUtil.getLoggerContext()); layout.start(); // 启动 appender.start(); return appender; }