Why?
新加的类,默认是不输出日志的,即便是在控制台输出,也不太方便后面的问题跟踪。
What?
本文介绍如果使用log4j输出新加的类产生的日志。
How?
1、添加Log4j的jar包和配置文件:
在项目lib下添加log4j的jar包,在根路径下添加:log4j.properties 配置文件,因启动脚本中有如下的传参:
故可以用 ${phoenix.home}/apps/james/logs/${日志名}.log 将日志输出到james的日志目录下,便于查看。下面为demo:
log4j.rootCategory=INFO, stdout,file
log4j.rootLogger=info, stdout,file
log4j.appender.syslog.encoding=UTF-8
### 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=%d{ABSOLUTE} %5p - %m%n
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %p %t %c:[%L] - %m%n
### file ###
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File = ${phoenix.home}/apps/james/logs/mylog.log
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern =%d{ABSOLUTE} %p %t %c:[%L] - %m%n
### set package ###
log4j.logger.org.apache.james.transport.mailets=info
log4j.logger.org.apache.james.mailStatuServer.SendMailStatuHandler=debug
log4j.logger.org.apache.james.recentcontacts.RecentContactsHandler=debug
2、修改Ant构建配置build.xml
3、重新构建
右击 build.xml ->Run As ->Ant Build 即可构建,找到构建后的james.sar文件:
4、确认并检验:
用压缩软件(例如2345好压)打开james.sar -> 双击 SAR-INF\lib\james-${版本号}-SNAPSHOT.jar 会在java反编译工具(例如jd-gui.exe)中打开,如果有log4j.properties且内容正确。在新加类里面添加log4j日志输出并在日志文件中查看进行最后确认,此步由读者确认下。