【转载】Log4j之高级配置
来源:互联网 发布:java专业入门课程 编辑:程序博客网 时间:2024/05/23 19:24
Log4j日记记录过程可以拆解为日志来源以及日志的输出地之间的关系。日志的来源与日志输出完全独立,可以是多对多的关系。说得简单一点就是,代码里面的一条日志可以输出到多个输出目的地(控制台,all.log文件, A1.log文件等),反过来一个输出目的地可以接纳来源于多个地方的日志。Java里面代码都在package和class下面,所以来源可以通过package或者class进行定位,确定来源于什么地方。然后将该日志来源记录到希望记录的输出地即可。举个例子吧,加入项目中持久化层用到了iBatis开源项目,iBatis也会通过Log4j来记录它的操作日志,现在想把iBatis输出的日志都记录到一个iBatis.log文件中,不要跟项目的代码混到一起。 还有,现在希望有一个error.log文件来记录所有的出错信息,不是出错的不记录。 观察以上两个例子,强调的都是日志来源和输出的个性化,只是后者的来源是全部。下面先上Log4j配置文件:
### set root log ###log4j.rootLogger = INFO , CONSOLE, ALL, ERROR### console log ###log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.Target = System.outlog4j.appender.CONSOLE.Threshold = INFOlog4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern = %t %d{yyyy-MM-dd HH:mm:ss,SSS} %l %M %5p %m%n### all information log ###log4j.appender.ALL = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.ALL.File = logs/all.loglog4j.appender.ALL.DatePattern = '.'yyyy-MM-dd'.log'log4j.appender.ALL.Threshold = INFOlog4j.appender.ALL.layout = org.apache.log4j.PatternLayoutlog4j.appender.ALL.layout.ConversionPattern = %t %d{yyyy-MM-dd HH:mm:ss,SSS} %l %M %5p %m%n### error log ###log4j.appender.ERROR = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.ERROR.File = logs/error.loglog4j.appender.ERROR.DatePattern = '.'yyyy-MM-dd'.log'log4j.appender.ERROR.Threshold = ERRORlog4j.appender.ERROR.layout = org.apache.log4j.PatternLayoutlog4j.appender.ERROR.layout.ConversionPattern = %t %d{yyyy-MM-dd HH:mm:ss,SSS} %l %M %5p %m%n### iBatis log ###log4j.appender.IBATIS = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.IBATIS.File = logs/ibatis.loglog4j.appender.IBATIS.DatePattern = '.'yyyy-MM-dd'.log'log4j.appender.IBATIS.Threshold = DEBUGlog4j.appender.IBATIS.layout = org.apache.log4j.PatternLayoutlog4j.appender.IBATIS.layout.ConversionPattern = %t %d{yyyy-MM-dd HH:mm:ss,SSS} %5p %m%nlog4j.logger.com.ibatis = DEBUG , CONSOLE , ALL, ERROR, IBATISlog4j.logger.com.ibatis.common.jdbc.SimpleDataSource = DEBUGlog4j.logger.com.ibatis.common.jdbc.ScriptRunner = DEBUGlog4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = DEBUGlog4j.logger.java.sql.Connection = DEBUGlog4j.logger.java.sql.Statement = DEBUGlog4j.logger.java.sql.PreparedStatement = DEBUG, CONSOLE , ALL, IBATIS
日志的来源和输出都可以设定日志级别。以iBatis为例, log4j.logger.com.ibatis = DEBUG指定 ibatis包级别一下的日志来源日志级别为DUBUG,这样就能够看到SQL信息。再看error日志的配置,log4j.appender.ERROR.Threshold = ERROR指定输出的日志级别是ERROR,该输出目的地只记录出错信息。 像一根水管上的两个水龙头,出水的多少决定于流量小的那个水龙头。Log4j里面日志的记录是决定于级别高的那一个。上面还配有all.log输出,可以完整的在一个地方找到所有的日志。
通过以上方式可以灵活定制日志策略,项目的日志参照iBatis的配置方法配置即可。对后需要提醒的是最好为开发环境可生成环境配置不同的日志策略。输出级别和输出地都可能不同! 应该有两个Log4j文件, log4j-pro.properties和log4j-dev.properties,分别对应于生产环境和开发环境。
文章转自:http://blog.csdn.net/kimylrong/article/details/7670245- 【转载】Log4j之高级配置
- 【转载】Log4j之高级配置
- Log4j之高级配置
- Log4j之高级配置
- Log4j高级配置
- [转载]常用log4j配置
- Log4j配置 (部分转载)
- 转载 log4j配置
- Log4j详细配置【转载】
- 常用log4j配置(转载)
- log4j.properties配置(转载)
- Spring中Log4j高级配置
- log4j详细配置说明(转载)
- 转载 配置Log4j(很详细)
- log4j配置(转载的)
- [转载]Log4j.properties配置详解
- Log4j配置详解(转载)
- 【转载收藏】log4j 配置介绍
- 【黑马程序员】equals和==的区别
- Python学习-语录
- UIViewController的生命周期
- uestc 1221 Ancient Go
- 数式の演算子と関数
- 【转载】Log4j之高级配置
- EventBus使用详解(一)——初步使用EventBus
- Spring与Velocity
- Spring整合JMS(一)——基于ActiveMQ实现
- mysql 错误解决方案-积累
- PHP防盗链文件下载的基本思想
- jdk7/8 TOMCAT7
- 最近在写一个distributed cache,把设计思想分享一下
- Spring整合JMS(二)——三种消息监听器