Log4j代码形式配置
Logger:日志记录器,负责收集处理日志记录 (如何处理日志)
Appender:日志输出目的地,负责日志的输出 (输出到什么 地方)
Layout:日志格式化,负责对输出的日志格式化(以什么形式展现)
代码
Logger logger = LogManager.getLogger(logName);
Logger.setLevel(Level.info);
Appender appender = new FileAppender();
appender.setFile(filename);
appender.setEncoding(“utf-8”);
PatternLayout patternLayout = new PatternLayout();
patternLayout.setLayout(“%m%n”);
appender.setLayout(patternLayout);
//这句启动配置记得加,不加会报 ERROR No output stream or file set for the appender 的错误,源码中在这方法里将文件名转为对应的输出流
appender.activateOptions();
logger.addAppender(appender);
LogManager.getLogger(logName)方法中会对 Logger进行缓存,具体实现在Hierarchy类的getLogger方法中。以logName为键存在HashTable中。所以如果在下次通过Logger.getLogger(logName),是从HashTable中获取之前配置好的Logger.