log4j, log4j2 实用配置;log4j 2 异步配置
2016-05-29 11:29
387 查看
版权声明:本文地址http://blog.csdn.net/caib1109/article/details/51407091
欢迎非商业目的的转载, 作者保留一切权利
目录:
Java Web项目指定log4jproperties
log4j
巧用rootlevel和package日志level禁止hibernate日志输出
log4j2
用Additivity禁止hibernate日志输出
log4j 2 异步配置
log4j 还是 log4j 2 ?
- log4j 兼容jdk6, 最新版本是1.2.17(不再更新)
- log4j2 不兼容jdk7之前的版本, 最新版本是2.6.x (截止2016-06-15)
但是,log4j 2 采用了异步写文件的机制,比log4j 提高了10倍以上的性能。
所以,对于还在用Java6的服务器来说 请使用log4j。
新项目,尽量使用jdk 7 和 log4j 2
src/log4j2.properties 内容如下,注意文件名要带 “2”:
log4j2的.xml的配置文件, 支持指定哪些包输出, .properties的配置文件没试过.
Perhaps it is desired to eliminate all the TRACE output from everything except com.foo.Bar. Simply changing the log level would not accomplish the task. Instead, the solution is to add a new logger definition to the configuration:
http://logging.apache.org/log4j/2.x/manual/configuration.html#ConfigurationSyntax
It is possible to disable logging for certain parts of the application
如前文所述, log4j 允许你在不修改程序代码的前提下, 重新定义logging的行为. 禁止程序某些部分的日志输出是可行的.
src/log4j2.xml 内容如下,注意文件名中的“2”不可省略:
关键配置:
版权声明:本文地址http://blog.csdn.net/caib1109/article/details/51407091
欢迎非商业目的的转载, 作者保留一切权利
欢迎非商业目的的转载, 作者保留一切权利
目录:
Java Web项目指定log4jproperties
log4j
巧用rootlevel和package日志level禁止hibernate日志输出
log4j2
用Additivity禁止hibernate日志输出
log4j 2 异步配置
log4j 还是 log4j 2 ?
- log4j 兼容jdk6, 最新版本是1.2.17(不再更新)
- log4j2 不兼容jdk7之前的版本, 最新版本是2.6.x (截止2016-06-15)
但是,log4j 2 采用了异步写文件的机制,比log4j 提高了10倍以上的性能。
所以,对于还在用Java6的服务器来说 请使用log4j。
新项目,尽量使用jdk 7 和 log4j 2
Java Web项目指定log4j.properties
<!-- 在 WebContent/WEB-INF/web.xml 中添加 --> <listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>6000</param-value> </context-param>
log4j
### set log levels ### #设置rootLogger使用名为E和I的输出设置 #第一个逗号前是根日志等级 log4j.rootLogger = DEBUG , E , I #windows下绝对路径以tomcat安装位置所在的盘符为准, #如tomcat安装位置在D盘,则d:\\wls\\apache\\applogs\\ mylog.home=/wls/apache/applogs/ ## 管理引用的第三方 jar包的日志输出, OFF是关闭 log4j.logger.org.springframework=OFF log4j.logger.org.apache.struts2=OFF log4j.logger.com.opensymphony.xwork2=OFF log4j.logger.com.ibatis=OFF log4j.logger.org.hibernate=OFF log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG ### Info Log File ### log4j.appender.I = org.apache.log4j.RollingFileAppender log4j.appender.I.File = ${mylog.home}info.log log4j.appender.I.Append = true # 防止在linux和windows上跑,中文编码不一致,乱码 log4j.appender.I.encoding=UTF-8 log4j.appender.I.Threshold = INFO log4j.appender.I.MaxFileSize= 20000KB#DailyRollingFileAppender不支持 log4j.appender.I.MaxBackupIndex= 3 #DailyRollingFileAppender不支持 log4j.appender.I.layout = org.apache.log4j.PatternLayout log4j.appender.I.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}[%5p] [ %c %4L] %m%n ### Error Log file ### log4j.appender.E = org.apache.log4j.RollingFileAppender log4j.appender.E.File = ${pafa.log.home}error.log log4j.appender.E.Append = true # 防止在linux和windows上跑,中文编码不一致,乱码 log4j.appender.E.encoding=UTF-8 log4j.appender.E.Threshold = ERROR log4j.appender.E.MaxFileSize= 20000KB log4j.appender.E.MaxBackupIndex= 3 log4j.appender.E.layout = org.apache.log4j.PatternLayout log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %p ] [ %c %4L ] %m%n
巧用rootlevel和package日志level禁止hibernate日志输出
#根使用FATAL(FATAL>ERROR>INFO)级别,这样hibernate就不会输出了 log4j.rootLogger=FATAL, A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n # com.foo.myapp 使用INFO级别输出 log4j.logger.com.foo.myapp=INFO
log4j2
log4j 2 支持 properties 格式, xml 格式, json 格式的配置文件。为了降低从 log4j 迁移到 log4j 2 的学习成本, 先使用 properties 格式。src/log4j2.properties 内容如下,注意文件名要带 “2”:
status = error name = PropertiesConfig property.filename = target/rolling/rollingtest.log filters = threshold filter.threshold.type = ThresholdFilter filter.threshold.level = debug #appenders = console, I, E #不要输出到console,要养成看日志文件的习惯 appenders =I, E #appender.console.type = Console #appender.console.name = STDOUT #appender.console.target = SYSTEM_OUT #appender.console.layout.type = PatternLayout #appender.console.layout.pattern = %-d{yyyy-MM-dd HH:mm:ss} [ %p ] [ %c ] %m%n appender.I.type = RollingFile appender.I.name = InfoRollingFile appender.I.fileName = /spider/logs/info.log appender.I.filePattern = /spider/logs/info_%d{yyyy-MM-dd}_%i.log appender.I.layout.type = PatternLayout appender.I.layout.pattern = %-d{yyyy-MM-dd HH:mm:ss} [ %p ] [ %c ] %m%n appender.I.policies.type = Policies appender.I.policies.time.type = TimeBasedTriggeringPolicy appender.I.policies.time.interval = 1 appender.I.policies.time.modulate = true appender.I.policies.size.type = SizeBasedTriggeringPolicy appender.I.policies.size.size=20M appender.I.strategy.type = DefaultRolloverStrategy appender.I.strategy.max = 100 appender.E.type = RollingFile appender.E.name = ErrorRollingFile appender.E.fileName = /spider/logs/error.log appender.E.filePattern = /spider/logs/error_%d{yyyy-MM-dd}_i.log appender.E.layout.type = PatternLayout appender.E.layout.pattern = %-d{yyyy-MM-dd HH:mm:ss} [ %p ] [ %c ] %m%n appender.E.policies.type = Policies appender.E.policies.time.type = TimeBasedTriggeringPolicy appender.E.policies.time.interval = 1 appender.E.policies.time.modulate = true appender.E.policies.size.type = SizeBasedTriggeringPolicy appender.E.policies.size.size=20M appender.E.strategy.type = DefaultRolloverStrategy appender.E.strategy.max = 100 rootLogger.level = info #rootLogger.appenderRefs = stdout,I,E rootLogger.appenderRefs =I,E #rootLogger.appenderRef.stdout.ref = STDOUT rootLogger.appenderRef.I.ref = InfoRollingFile rootLogger.appenderRef.I.level = info rootLogger.appenderRef.E.ref = ErrorRollingFile rootLogger.appenderRef.E.level = error
log4j2的.xml的配置文件, 支持指定哪些包输出, .properties的配置文件没试过.
用Additivity禁止hibernate日志输出
http://logging.apache.org/log4j/2.x/manual/configuration.html#AdditivityPerhaps it is desired to eliminate all the TRACE output from everything except com.foo.Bar. Simply changing the log level would not accomplish the task. Instead, the solution is to add a new logger definition to the configuration:
http://logging.apache.org/log4j/2.x/manual/configuration.html#ConfigurationSyntax
It is possible to disable logging for certain parts of the application
如前文所述, log4j 允许你在不修改程序代码的前提下, 重新定义logging的行为. 禁止程序某些部分的日志输出是可行的.
src/log4j2.xml 内容如下,注意文件名中的“2”不可省略:
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="INFO"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> </Console> <File name="I" fileName="logs/info.log" bufferedIO="false" advertise="true"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> </File> <File name="E" fileName="logs/error.log" bufferedIO="false" advertise="true"> <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> </File> </Appenders> <Loggers> <!--制定输出com包中的logger--> <Logger name="com" level="debug"> <AppenderRef ref="Console"/> <AppenderRef ref="I"/> <AppenderRef ref="E"/> </Logger> <!--忽略hibernate等第三方包的日志--> <Root level="OFF"> </Root> </Loggers> </Configuration>
log4j 2 异步配置
详细请看http://my.oschina.net/musings/blog/98234关键配置:
<appender name="xxx" class="org.apache.log4j.AsyncAppender"> <!--缓存大小影响性能 256 时最佳--> <param name="BufferSize" value="512"/>
版权声明:本文地址http://blog.csdn.net/caib1109/article/details/51407091
欢迎非商业目的的转载, 作者保留一切权利
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树