Log4J按照不同包名输出日志

来源:互联网 发布:帝国cms 建站交流 编辑:程序博客网 时间:2024/05/18 03:31

log4j是java项目常用的日志输出组件,其配置灵活,功能强大,之前只是在项目中简单的使用,然后使用中学习其他功能,比如今天我们打算将日志按照不同的package包名输出,配置类config包下的日志输出到config.log,业务处理的日志输出到busi.log。因为配置比较简单就只贴出log4j.propertis的配置,源码过多就不贴了

log4j.rootLogger =ALL,systemOut#输出到控制台log4j.appender.systemOut = org.apache.log4j.ConsoleAppenderlog4j.appender.systemOut.layout = org.apache.log4j.PatternLayoutlog4j.appender.systemOut.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  - [ %p ]  %m%nlog4j.appender.systemOut.Threshold = DEBUGlog4j.appender.systemOut.ImmediateFlush = TRUElog4j.appender.systemOut.Target = System.out#输出com.roy.busi包下类的日志,debug级别,appender是busilog4j.logger.com.roy.busi=debug,busi#每日生成新的文件log4j.appender.busi = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.busi.layout = org.apache.log4j.PatternLayoutlog4j.appender.busi.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  - [ %p ]  %m%nlog4j.appender.busi.Threshold = DEBUGlog4j.appender.busi.ImmediateFlush = TRUElog4j.appender.busi.Append = TRUE#日志路径log4j.appender.busi.File = ./logfile/log4j-busi.loglog4j.appender.busi.Encoding = UTF-8#输出com.roy.config包下类的日志log4j.logger.com.roy.config=debug,config#每日生成新的文件log4j.appender.config = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.config.layout = org.apache.log4j.PatternLayoutlog4j.appender.config.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  - [ %p ]  %m%nlog4j.appender.config.Threshold = DEBUGlog4j.appender.config.ImmediateFlush = TRUElog4j.appender.config.Append = TRUE#日志路径log4j.appender.config.File = ./logfile/log4j-config.loglog4j.appender.config.Encoding = UTF-8

其中新建的两个appender适配器busi和config不要配在rootLogger全局中,只在自己包下配置,比如:
com.roy.busi就是package包名,debug是级别,busi是appender名字

log4j.logger.com.roy.busi=debug,busi

这样的话程序就会生成两个日志文件log4j-config.log和log4j-busi.log,不同包下类中的日志信息会分别按照配置输出到这两个文件中。同样的,适应于更复杂繁多的项目中,这次学到的虽然比较简单但还是很有用,记录以加深印象,以后若有更高级的运用,会再新的blog中介绍。