logback自定义logger的java代码:
public static Logger getLogger(String jobName, Class<?> cls){
Logger logger = (Logger) LoggerFactory.getLogger(cls);
LoggerContext loggerContext = logger.getLoggerContext();
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(loggerContext);
encoder.setPattern("%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n");
encoder.start();
RollingFileAppender appender = new RollingFileAppender();
appender.setContext(loggerContext);
TimeBasedRollingPolicy rollingPolicyBase = new TimeBasedRollingPolicy<>();
rollingPolicyBase.setContext(loggerContext);
rollingPolicyBase.setParent(appender);
rollingPolicyBase.setFileNamePattern((String.format("%s/job-schedule/mesp-schedule-%s", logFilePath, jobName) + ".%d{yyyy-MM-dd}.%i.log"));
SizeAndTimeBasedFNATP sizeAndTimeBasedFNATP = new SizeAndTimeBasedFNATP();
sizeAndTimeBasedFNATP.setMaxFileSize("10MB");
rollingPolicyBase.setTimeBasedFileNamingAndTriggeringPolicy(sizeAndTimeBasedFNATP);
rollingPolicyBase.setMaxHistory(10);
rollingPolicyBase.start();
appender.setEncoder(encoder);
appender.setRollingPolicy(rollingPolicyBase);
appender.start();
logger.setAdditive(false);
logger.addAppender(appender);
return logger;
}