1. log4j配置文件的命名。
必须命令为 log4j.properties
2. log4j配置文件放在哪?
放在工程里 WEB-INF/classes 目录里。(不需要自己加载,Tomcat会自动加载此配置文件)
如果使用的是Eclipse,那么可以把 log4j.properties 放在工程的src目录下,这样当在Eclipse中修改它之后,Eclipse会自动的把它更新到classes目录里,比较方便。
3. 使用logger.
完成1,2步后,就可以使用 log4j 了。
private static Logger logger = Logger.getLogger(RequestMlms.class.getName());
logger.info("Hello world");
每个要使用logger的类都生成一个静态的Logger对象:
这是有原因的,因为在配置文件中 log4j.logger.packageName 用以指定某个包下面的logger输出的日志的配置,如目的地,格式。
例如:
log4j.rootLogger=DEBUG, A1
#A1 Print message into console
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} %l: %m%n
指定了根logger输出的信息到命令行(logger以树形结构管理,有继承特性:如果子包没有log4j配置,则继承使用父包的配置)。
而如果把上面的 log4j.rootLogger=DEBUG, A1换成 log4j.logger.hb.util=DEBUG, A1
则说明包hb.util下的所有类中使用 logger 输出的信息都输出到命令行。而此时包 hb.domain 中的类使用 logger 输出的日志时则会提示没有指定输出目的地,不进行输出。这是因为在log4j配置文件中没有为hb.domain里的类指定日志配置信息。