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(); }
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); }
/** * 构建基于文件大小和时间的滚动策略 * * @param logContext 日志上下文 * @param rollingFilePath 滚动文件路径 * @param maxFileSize 单个文件最大容量 * @param maxHistory 最多保存的文件个数(null表示不限制) * @param totalSizeCap 日志最大保存容量(null表示不限制) * @return 策略 */ public static SizeAndTimeBasedRollingPolicy buildSizeAndTimeBasedRollingPolicy(LogContext logContext, String rollingFilePath, String maxFileSize, Integer maxHistory, String totalSizeCap) { SizeAndTimeBasedRollingPolicy policy = new SizeAndTimeBasedRollingPolicy(); policy.setFileNamePattern(rollingFilePath); policy.setMaxFileSize(FileSize.valueOf(maxFileSize)); if (maxHistory != null) { policy.setMaxHistory(maxHistory); } if (totalSizeCap != null) { policy.setTotalSizeCap(FileSize.valueOf(totalSizeCap)); } return policy; }
@Override public void start() { SizeAndTimeBasedFNATP<E> sizeAndTimeBasedFNATP = new SizeAndTimeBasedFNATP<E>(Usage.EMBEDDED); if(maxFileSize == null) { addError("maxFileSize property is mandatory."); return; } else { addInfo("Archive files will be limited to ["+maxFileSize+"] each."); } sizeAndTimeBasedFNATP.setMaxFileSize(maxFileSize); timeBasedFileNamingAndTriggeringPolicy = sizeAndTimeBasedFNATP; if(!isUnboundedTotalSizeCap() && totalSizeCap.getSize() < maxFileSize.getSize()) { addError("totalSizeCap of ["+totalSizeCap+"] is smaller than maxFileSize ["+maxFileSize+"] which is non-sensical"); return; } // most work is done by the parent super.start(); }
final SizeAndTimeBasedRollingPolicy<E> sizeAndTimeBasedRollingPolicy = new SizeAndTimeBasedRollingPolicy<>(); sizeAndTimeBasedRollingPolicy.setMaxFileSize(new FileSize(maxFileSize.toBytes())); rollingPolicy = sizeAndTimeBasedRollingPolicy;
@Override protected SizeAndTimeBasedRollingPolicy<ILoggingEvent> instantiatePolicy(LoggerContext context) { SizeAndTimeBasedRollingPolicy<ILoggingEvent> policy = new SizeAndTimeBasedRollingPolicy<>(); setupBasePolicySettings(policy); if (fileSize != null && fileSize.length() > 0) { policy.setMaxFileSize(fileSize); } policy.setContext(context); return policy; }
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); } }
@Override public void start() { SizeAndTimeBasedFNATP<E> sizeAndTimeBasedFNATP = new SizeAndTimeBasedFNATP<E>(SizeAndTimeBasedFNATP.Usage.EMBEDDED); if(maxFileSize == null) { addError("maxFileSize property is mandatory"); return; } else { addInfo("Archive files will be limited to ["+maxFileSize+"] each."); } sizeAndTimeBasedFNATP.setMaxFileSize(maxFileSize); timeBasedFileNamingAndTriggeringPolicy = sizeAndTimeBasedFNATP; if(!isUnboundedTotalSizeCap() && totalSizeCap.getSize() < maxFileSize.getSize()) { addError("totalSizeCap of ["+totalSizeCap+"] is smaller than maxFileSize ["+maxFileSize+"] which is non-sensical"); return; } // most work is done by the parent super.start(); }
final SizeAndTimeBasedRollingPolicy<E> sizeAndTimeBasedRollingPolicy = new SizeAndTimeBasedRollingPolicy<>(); sizeAndTimeBasedRollingPolicy.setMaxFileSize(new FileSize(maxFileSize.toBytes())); rollingPolicy = sizeAndTimeBasedRollingPolicy;
@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; }
@Override public void start() { SizeAndTimeBasedFNATP<E> sizeAndTimeBasedFNATP = new SizeAndTimeBasedFNATP<E>(Usage.EMBEDDED); if(maxFileSize == null) { addError("maxFileSize property is mandatory."); return; } else { addInfo("Archive files will be limited to ["+maxFileSize+"] each."); } sizeAndTimeBasedFNATP.setMaxFileSize(maxFileSize); timeBasedFileNamingAndTriggeringPolicy = sizeAndTimeBasedFNATP; if(!isUnboundedTotalSizeCap() && totalSizeCap.getSize() < maxFileSize.getSize()) { addError("totalSizeCap of ["+totalSizeCap+"] is smaller than maxFileSize ["+maxFileSize+"] which is non-sensical"); return; } // most work is done by the parent super.start(); }
@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; }
@Override public void start() { SizeAndTimeBasedFNATP<E> sizeAndTimeBasedFNATP = new SizeAndTimeBasedFNATP<E>(Usage.EMBEDDED); if(maxFileSize == null) { addError("maxFileSize property is mandatory."); return; } else { addInfo("Archive files will be limited to ["+maxFileSize+"] each."); } sizeAndTimeBasedFNATP.setMaxFileSize(maxFileSize); timeBasedFileNamingAndTriggeringPolicy = sizeAndTimeBasedFNATP; if(!isUnboundedTotalSizeCap() && totalSizeCap.getSize() < maxFileSize.getSize()) { addError("totalSizeCap of ["+totalSizeCap+"] is smaller than maxFileSize ["+maxFileSize+"] which is non-sensical"); return; } // most work is done by the parent super.start(); }
SizeAndTimeBasedRollingPolicy<Object> policy = new SizeAndTimeBasedRollingPolicy<>(); policy.setContext(loggerContext); String logPath = "/log/cn.jiangzeyin"; String filePath = String.format("%s/%s/%s/%s", logPath, SpringUtil.getApplicationId(), path, tag).toLowerCase(); policy.setFileNamePattern(String.format("%s-%%d{yyyy-MM-dd}.%%event.log", filePath)); policy.setMaxFileSize(FileSize.valueOf("100MB")); policy.setMaxHistory(30); policy.setTotalSizeCap(FileSize.valueOf("10GB")); policy.setParent(appender); policy.start();
fileAppender = new RollingFileAppender<>(); SizeAndTimeBasedRollingPolicy<T> rollingPolicy = new SizeAndTimeBasedRollingPolicy<>(); rollingPolicy.setContext(context); rollingPolicy.setFileNamePattern(logPath + "-%d{yyyy-MM-dd}.%i.log.gz"); rollingPolicy.setMaxHistory(maxHistory); rollingPolicy.setTotalSizeCap(new FileSize(maxTotalSize.toBytes())); rollingPolicy.setParent(fileAppender); rollingPolicy.setMaxFileSize(new FileSize(maxFileSize.toBytes())); rollingPolicy.start(); fileAppender.start(); if (queueSize > 0) {