直接貼代碼
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
import ch.qos.logback.core.rolling.RollingFileAppender;
import ch.qos.logback.core.rolling.TimeBasedRollingPolicy;
import org.slf4j.LoggerFactory;
import java.nio.charset.Charset;
class LogbackUtils {
private static Logger logger = null;
static {
String path = System.getProperty("log.path");
if (StringUtils.isEmpty(path)) {
path = ".";
}
String logFile = path + "/my_log_file.log";
System.out.println(logFile);
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
// 編碼器
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(context);
encoder.setPattern("%m%n");
encoder.setCharset(Charset.forName("UTF-8"));
encoder.start();
// 滾動策略
TimeBasedRollingPolicy rollingPolicy = new TimeBasedRollingPolicy();
rollingPolicy.setContext(context);
rollingPolicy.setFileNamePattern(logFile + ".%d{yyyy-MM-dd}");
rollingPolicy.setMaxHistory(2);
// appender
RollingFileAppender appender = new RollingFileAppender();
appender.setContext(context);
appender.setEncoder(encoder);
appender.setFile(logFile);
appender.setRollingPolicy(rollingPolicy);
rollingPolicy.setParent(appender);
rollingPolicy.start();
appender.start();
// logger
logger = (Logger) LoggerFactory.getLogger("my_logger");
logger.setLevel(Level.DEBUG);
logger.addAppender(appender);
}
static void info(String sql) {
logger.info(sql);
}
}