文档章节

log4j配置参考手册:log4j.properties和log4j.xml两种格式

FansUnion
 FansUnion
发布于 2015/05/03 01:30
字数 680
阅读 37
收藏 0
   log4j是Java Web开发中,最常用的日志组件之一。网上关于log4j的配置满天飞,我主要是从网上学习的配置。之前的很多年,主要使用log4j.properties这种格式。后来,项目中boss使用了log4j.xml这种配置。
   关于xml配置,之前也用过,主要觉得麻烦,而且还要手动配置listener,所以基本不用。
   和boss交流了下,发现xml格式的配置,语法更全面。我主要发现了2种“高端用途” :
1.业务日志与系统日志相分离。(这个比较有价值)
2.配置过滤器。 (参考资料里有配置介绍)

   关于配置语法,网上有资料,有兴趣的可以查看下方的参考资料或者网上搜。不想贴没有原创性的用法示例。

   log4j.properties :最常用最简单的配置,记录不同级别的日志到控制台、文件,并且每天一个日志文件
#log4j.rootLogger=OFF
log4j.rootLogger=debug,CONSOLE,D,I,E
#DEBUG,CONSOLE,FILE,ROLLING_FILE,MAIL,DATABASE 
###################
# Console Appender
###################
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=debug
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
#Debug rootDailyRollingFile#####
log4j.appender.D=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.D.Threshold=DEBUG
log4j.appender.D.layout=org.apache.log4j.PatternLayout  
log4j.appender.D.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.appender.D.file=C:/log4j/briefcms-debug
log4j.appender.DFile.DatePattern='-'yyyy-MM-dd'.log'
#Info
log4j.appender.I=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.I.Threshold=INFO
log4j.appender.I.layout=org.apache.log4j.PatternLayout  
log4j.appender.I.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.appender.I.file=C:/log4j/briefcms-info
log4j.appender.I.DatePattern='-'yyyy-MM-dd'.log'
#Error
log4j.appender.E=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.E.Threshold=ERROR
log4j.appender.E.layout=org.apache.log4j.PatternLayout  
log4j.appender.E.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.appender.E.file=C:/log4j/briefcms-error
log4j.appender.E.DatePattern='-'yyyy-MM-dd'.log'  

log4j.xml:实现业务日志与系统日志相分离
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

<!-- Appenders -->
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss\} %-5p] [%t] %c{2\} - %X{loginUser} %X{userip} %m%n" />
</layout>
</appender>

<appender name="DEFAULT-APPENDER" class="org.apache.log4j.DailyRollingFileAppender">    
<param name="File" value="C:/log4j/default.log" /><!-- 设置日志输出文件名 -->  
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />   
 <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->  
<param name="Append" value="true" />  
<param name="MaxBackupIndex" value="10" />  
<layout class="org.apache.log4j.PatternLayout">  
<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss\} %-5p] [%t] %c{2\} - %X{loginUser} %X{userip} %m%n" />  
</layout>  
</appender>
<appender name="BIZ-APPENDER" class="org.apache.log4j.DailyRollingFileAppender">  
<param name="File" value="C:/log4j/biz.log" />   
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />   
<param name="Threshold" value="INFO" />  
<layout class="org.apache.log4j.PatternLayout">  
<param name="ConversionPattern"  value="[%d{yyyy-MM-dd HH:mm:ss\} %-5p] [%t] %c{2\} - %X{loginUser} %X{userip} %m%n" />  
</layout>   
</appender> 
<appender name="ERROR-APPENDER" class="org.apache.log4j.DailyRollingFileAppender">  
<param name="File" value="C:/log4j/error.log" />   
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />   
<param name="Threshold" value="ERROR" />  
<layout class="org.apache.log4j.PatternLayout">  
<param name="ConversionPattern"  value="[%d{yyyy-MM-dd HH:mm:ss\} %-5p] [%t] %c{2\} - %X{loginUser} %X{userip} %m%n" />  
</layout>   
</appender>
<!-- Application Loggers -->
<logger name="cn.fansunion" additivity="false">
<level value ="debug"/>   
<appender-ref ref="BIZ-APPENDER" />   
<appender-ref ref="ERROR-APPENDER" />
</logger>

<!-- Root Logger -->
<root>
<level value="debug" />
<appender-ref ref="DEFAULT-APPENDER"/>  
<appender-ref ref="ERROR-APPENDER"/>
</root>
</log4j:configuration>  

参考资料:
http://blog.csdn.net/coolcoffee168/article/details/6368924
http://zhangxiang390.iteye.com/blog/258455
http://www.cnblogs.com/tqsummer/archive/2010/08/26/1809232.html

http://blog.csdn.net/jueshengtianya/article/details/8900427 

原文首发:http://fansunion.cn/article/detail/554.html

© 著作权归作者所有

FansUnion
粉丝 60
博文 858
码字总数 825464
作品 0
丰台
高级程序员
私信 提问
Hibernate使用Log4j日志记录

日常我们调试程序的时候都是打印日志,但是使用日志记录能够将日志详细信息永久写入文件,更加方便我们查阅,在hibernate框架中使用 Log4j和Logback框架来支持日志记录。 使用log4j执行日志记...

爆米花9958
2017/08/16
0
0
log4j:WARN Please initialize the log4j system p...

log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext). log4j:WARN Please initialize the log4j system properly. S......

进击的方便面
2013/09/26
0
0
jboss log4j冲突分析与解决

Log4j作为日志组件被大多数的系统所使用,Jboss也不例外的采用了Log4j作为它的日志输出组件。 但在使用JBoss时,很多人经常碰到一些冲突,这些冲如自己配置的log4j文件无效,系统抛org.jboss...

职通网
2012/07/16
0
0
log4j 使用及配置分析记录

log4j是一个非常强大的log记录软件,下面我们就来看看在项目中如何使log4j。 ps:其配置文件有两种 log4j.properties 和log4j.xml 两种形式。xml更强大,功能更丰富 ,properties更简单易懂。...

北方攻城师
2015/04/12
0
0
使用命令参数方式获取指定log4j配置文件

一般默认将log4j的配置文件放在项目中的src或者maven项目的resource文件夹下,程序可以直接读取到配置文件,并以配置文件的配置输入日志。 但是在将程序发布是,默认log4j的配置文件也要一同...

JS_HCX
2018/10/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Oracle SQL语法实例合集

如需转载请注明出处https://my.oschina.net/feistel/blog/3052024 目的:迅速激活Oracle SQL 参考:《Oracle从入门到精通》 ------------------------------------------------------------......

LoSingSang
今天
2
0
增加 PostgreSQL 服务进程的最大打开文件数

https://serverfault.com/questions/628610/increasing-nproc-for-processes-launched-by-systemd-on-centos-7 要在systemd的配置里加才行...

helloclia
今天
2
0
组合模式在商品分类列表中的应用

在所有的树形结构中最适合的设计模式就是组合模式,我们看看常用商品分类中如何使用。 先定义一个树形结构的商品接口 public interface TreeProduct { List<TreeProduct> allProducts(...

算法之名
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部