每个系统都有日志记录,而多数都是用的log4j,以为会配置了,懂了,发现还是有些细节的问题,要问,说不上来
jar包的依赖
<!-- log4j support --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>log4j.properties文件如下,放在你的web的resource下面,推荐maven标准工程来
### 设置### log4j.rootLogger = DEBUG,stdout,D,E log4j.logger.A=DEBUG, stdout log4j.logger.A.B=INFO, stdout ### 输出信息到控制抬 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n ### 输出DEBUG 级别以上的日志到=D://logs/error.log ### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = D://logs/log.log log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 输出ERROR 级别以上的日志到=D://logs/error.log ### log4j.appender.E = org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File =D://logs/error.log log4j.appender.E.Append = true log4j.appender.E.Threshold = ERROR log4j.appender.E.layout = org.apache.log4j.PatternLayout log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n测试用例
import org.apache.log4j.Logger; /** * @author hankun * @create 2017-06-06 18:32 */ public class log4jTtest { private static Logger logger = Logger.getLogger(log4jTtest.class); private static Logger loggerA = Logger.getLogger("A"); private static Logger loggerA_B = Logger.getLogger("A.B"); /** * @param args */ public static void main(String[] args) { // 记录debug级别的信息 logger.debug("This is debug message."); // 记录info级别的信息 logger.info("This is info message."); // 记录error级别的信息 logger.error("This is error message."); loggerA_B.info("repeat three times in console"); loggerA.info("repeat two times in console"); logger.info("repeat one times in console"); } }就加上面的这句,就解决了问题
之前反反复复看了很多次,关于日志log4j的配置,每次看完以为会了,但是到了项目里面,总是不知道,自己有时候打印的日志到底跑哪里去了,或者去哪里看? 总结其原因就是,对于细节没有掌握理解到位,比如就是这个logger的概念,如果你真正的明白了,就知道了
谁能产生日志?logger
日志放哪里?appender
什么级别的日志才会输出?日志级别
他们是相互独立的组件,单独配置,又是相互配合,一起使用的,n*m的这种概念
因此上面的配置文件,一个logger可以对应多个appender,而appender之间又是彼此独立的。
