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

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

时间: 2024-07-29 08:19:10

log4j配置参考手册:log4j.properties和log4j.xml两种格式的相关文章

Dubbo -- 系统学习 笔记 -- 配置参考手册

配置参考手册 <dubbo:service/> <dubbo:reference/> <dubbo:protocol/> <dubbo:registry/> <dubbo:monitor/> <dubbo:application/> <dubbo:module/> <dubbo:provider/> <dubbo:consumer/> <dubbo:method/> <dubbo:

windows下配置tomcat服务器的jvm内存大小的两种方式

难得遇到一次java堆内存溢出(心里想着,终于可以来一次jvm性能优化了$$) 先看下报错信息, java.lang.OutOfMemoryError: GC overhead limit exceeded 错误就是发出了这样的信号: 执行垃圾收集的时间比例太大, 有效的运算量太小. 默认情况下, 如果GC花费的时间超过 98%, 并且GC回收的内存少于 2%, JVM就会抛出这个错误. 造成这个问题的原因可能是项目里某个地方定义的太多的map,list对象,或者一次从数据库中查询的数据量过大.

Apache开源日志框架Log4j配置指南

Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最方便的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码.本篇指南主要介绍Log4j 1.x版本的配置与使用Log4j最新版下载地址:http://www.apache.org/dy

dubbu 官方参考手册~备案(防止哪天阿里一生气把dubbo给删除了)

首页  ||  下载  ||  用户指南  ||  开发者指南  ||  管理员指南  ||  培训文档  ||  常见问题解答  ||  发布记录  ||  发展路线  ||  社区 English | 中文 用户指南 入门 背景 需求 架构 用法 快速启动 服务提供者 服务消费者 依赖 必需依赖 缺省依赖 可选依赖 成熟度 功能成熟度 策略成熟度 配置 Xml配置 属性配置 注解配置 API配置 示例 启动时检查 集群容错 负载均衡 线程模型 直连提供者 只订阅 只注册 静态服务 多协议 多

Ogre参考手册(二)3.1.1-3.1.2 材质、技术、通道

说明 翻译自Ogre 1.81 manual,在不影响理解的情况下做了删减,以减小阅读的时间和翻译的工作量 这么做只是去掉了文字上修饰部分,并没有减少任何原文档中的知识点,可以作为对等的参考手册 另外对一些不易理解的部分做了修改,或通过“附”做了标注 如果你发现了不易理解的部分,可以跟帖回复,我会原文做修改或回复 注:原文编写时间2006年第三季度,已经接近十年 所以里面所说的老显卡都已是古董,先进显卡也已是老显卡 3 脚本 Ogre的很多功能可以通过脚本驱动,以便于设置.脚本都是简单的文本文件

【 Date 对象 参考手册】

转载:JavaScript Date 对象参考手册 Date 对象是 JavaScript 的一种内部数据类型. Date 对象没有可以直接读写的属性,所有对日期和时间值的访问都是通过其方法执行的. 请从下面的表格访问有关 Date 对象的方法的详细信息. Date 对象的方法 FF: Firefox, N: Netscape, IE: Internet Explorer 方法 描述 FF N IE Date() 返回当日的日期和时间 1 2 3 getDate() 从 Date 对象返回一个月

Ogre参考手册(三)3.1.3 纹理单元TextureUnit

3.1.3 Texture Units 纹理单元 纹理单元通过.material脚本中的texture_unit段设定 texture_alias 设置纹理单元别名,例: texture_unit Diffuse //纹理单元名称 { texture_alias           DiffuseMap //别名 tex_address_mode  clamp } texture 设置纹理层使用的静态纹理图 格式:texture <texturefile> [<type>[unli

Microsoft Visual C++ 6.0预处理器参考手册

返回总目录 Microsoft Visual C++ 6.0 预处理器参考手册 目录引言.......................................................................................................................3 特殊术语.................................................................................

springboot之jackson的两种配置方式

springboot 针对jackson是自动化配置的,如果需要修改,有两种方式: 方式一:通过application.yml 配置属性说明:## spring.jackson.date-format指定日期格式,比如yyyy-MM-dd HH:mm:ss,或者具体的格式化类的全限定名 spring.jackson.deserialization是否开启Jackson的反序列化 spring.jackson.generator是否开启json的generators. spring.jackson