log4j 分类输出
2016-01-21 12:13
148 查看
一个log4j的问题也是折磨了我两天了。
终于算是实现了个符合需求的小demo。然而,我必须吧log4j搞定,这个乐塞。
需求描述:
用xml配置文件,将debug、info、warn、error分类且单独放各自相应的日志文件中。
实现:
xml文件:
测试类 log4jTest:
关键点:
1.xml中,起单独分类作用的是标签 <filter>
2.测试类中,加上一行代码,用于获取log4j.xml。(为了配置方便,我的log4j放在了项目根目录下,与src同级,故必须加上改行代码。)
DOMConfigurator.configure("log4j.xml");
其他point将在后续文章逐点列出,敬请关注。
终于算是实现了个符合需求的小demo。然而,我必须吧log4j搞定,这个乐塞。
需求描述:
用xml配置文件,将debug、info、warn、error分类且单独放各自相应的日志文件中。
实现:
xml文件:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> </layout> </appender> <appender name="my_error" class="org.apache.log4j.FileAppender"> <param name="File" value="D://logs/log4j_error.log"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="levelMin" value="ERROR" /> <param name="levelMax" value="ERROR" /> </filter> </appender> <appender name="my_warn" class="org.apache.log4j.FileAppender"> <param name="File" value="D://logs/log4j_warn.log"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="levelMin" value="WARN" /> <param name="levelMax" value="WARN" /> </filter> </appender> <appender name="my_info" class="org.apache.log4j.FileAppender"> <param name="File" value="D://logs/log4j_info.log"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="levelMin" value="INFO" /> <param name="levelMax" value="INFO" /> </filter> </appender> <appender name="my_debug" class="org.apache.log4j.FileAppender"> <param name="File" value="D://logs/log4j_debug.log"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="levelMin" value="DEBUG" /> <param name="levelMax" value="DEBUG" /> </filter> </appender> <logger name="Test.log4jTest" additivity="true"> <level value="DEBUG" /> <appender-ref ref="my_debug" /> <appender-ref ref="my_warn" /> <appender-ref ref="my_info" /> <appender-ref ref="my_error" /> </logger> <root> <priority value ="debug" /> <appender-ref ref="console" /> </root> </log4j:configuration>
测试类 log4jTest:
package Test; import org.apache.log4j.Appender; import org.apache.log4j.xml.DOMConfigurator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class log4jTest { private static Logger logger = LoggerFactory.getLogger(log4jTest.class); static { DOMConfigurator.configure("log4j.xml"); } public static void main(String[] args) { logger.debug("this is debug"); logger.info("this is info"); logger.error("this is error"); logger.warn("this is warn"); } }
关键点:
1.xml中,起单独分类作用的是标签 <filter>
2.测试类中,加上一行代码,用于获取log4j.xml。(为了配置方便,我的log4j放在了项目根目录下,与src同级,故必须加上改行代码。)
DOMConfigurator.configure("log4j.xml");
其他point将在后续文章逐点列出,敬请关注。
相关文章推荐
- List中使用remove()的漏洞
- IOS应用程序生命周期的AppDelegate详解
- 论各种排序算法
- javascript 类型检测
- webAppRootKey
- 电池显示的剩余可能不准确
- 梳排序(Comb sort)
- pyhton 数据结构二
- 编写高质量代码–改善python程序的建议(二)
- DSL简介
- ※回顾※关于阅读TCPIP等源码时遇到的:do while(0) 用法
- jenkins 入门教程(下)
- 解析json数组——TypeToken
- 手机APP测试之ADB常见问题解决方法
- svn 合并的问题
- Android Studio Application Test详解
- asp.net缓存
- centos 下安装tomcat-native
- angular点滴,界面上ng-model绑定的值和scope中的值不一致
- 如何用CSS3+HTML5绘制一个3x3的3D魔方?