在应用程序中输出日志有3个目的:
监视代码中变量的变化情况,把数据同期性地记录到文件中供其他应用进行统计分析工作。
跟踪代码运行时轨迹,作为日后审计的工具。
担当集成开放环境中的调试器的作用,向文件或控制台打印代码的调试信息。
Log4J主要由三大组件构成:
Logger:负责生成日志,并能够对日志信息进行分类筛选,通俗地讲就是决定什么日志信息应该被输出,什么日志信息应该被忽略。
Appender:定义了日志信息输出的目的地,指定日志信息应该被输出到什么地方,这些地方可以时控制台、文件、网络设备等。
Layout:指定日志信息的输出格式。
一个Logger可以有多个Appender,这意味着日志信息可以同时输出到多个设备上,每个Appender都对应一种Layout,Layout决定了输出日志信息的格式。
Logger是Log4J的核心组件,它代表了Log4J的日志记录器,它能够对日志信息分类筛选。
日志级别(Priority)有五种:FATAL、ERROR、WARN、INFO和DEBUG,其中FATAL级别最高,顺次降低。
对于输出日志的方法,只有当它输出日志的级别大于或等于为Logger组件配置的日志级别时,这个方法才会被真正执行。
Log4J提供了一个root Logger,它是所有Logger组件的”祖先“。
用户可以在配置文件中方便地配置存在继承关系的Logger组件,凡是在符号“.”后面的Logger组件都成为在符号“.”前面的Logger组件的子类。例如:
log4j.apache.helloappLogger = WARN
log4j.apache.helloappLogger.childLogger = ,file
对于以上配置代码,childLogger就是helloappLogger的子类Logger组件。
Logger组件的继承关系有以下特点:
如果子类Logger组件没有定义日志级别,则将继承父类的日志级别。否则,就不会继承父类的日志级别。
默认情况下,子类Logger组件会继承父类所有的Appender,把它们加入到自己的Appender清单中。
如果子类Logger组件的additivity标志设为false,那么就不会继承父类的Appender。additivity标志的默认值为true。
程序中使用Log4J包含以下过程:
获取日志记录器;
读取配置文件,配置Log4J环境;
输出日志信息。