如何设置application.properties日志级别记录级别

据日志级别设置来决定是否发送到mq,不然会大量占用网络资源。于是经过了一番搜索后,实现了这个功能。现在记录在这里。
目标:将debug,info级别的日志输出到本地文件,将warn,error级别的日志输出到ActiveMQ。
据日志级别设置来决定是否发送到mq,不然会大量占用网络资源。于是经过了一番搜索后,实现了这个功能。现在记录在这里。
目标:将debug,info级别的日志输出到本地文件,将warn,error级别的日志输出到ActiveMQ。
说明:本文还是使用之前的两个项目:Product和Logging。
经过一番搜索后,发现log4j还可以按照级别过滤日志,但过滤只能使用log4j.xml配置:
Filters can be defined at appender level. For example, to filter only certain levels, the LevelRangeFilter can be used like this:
&appender name="TRACE" class="org.apache.log4j.ConsoleAppender"&
&layout class="org.apache.log4j.PatternLayout"&
&param name="ConversionPattern" value="[%t] %-5p %c - %m%n" /&
&filter class="org.apache.log4j.varia.LevelRangeFilter"&
&param name="levelMin" value="DEBUG" /&
&param name="levelMax" value="DEBUG" /&
&/appender&
在搜索资料的过程中,也看到了有网友说log4j.properties方式也可以实现按级别过滤日志,具体步骤请参看《》。此种方式的缺点是,如果有多个Appender,则需要多个继承的类(每个Appender需要重新定义一个),因此感觉不如log4j.xml方式通过为appender配置filter来的直接。
然后我在这里找到了一份log4j.xml样本:,拿过来后,我只是在jms appender里面增加了一个filter而已:
&appender name="jms" class="org.apache.log4j.net.JMSAppender"&
&param name="InitialContextFactoryName"
value="org.apache.activemq.jndi.ActiveMQInitialContextFactory" /&
&param name="ProviderURL" value="tcp://localhost:61616" /&
&param name="TopicBindingName" value="logTopic" /&
&param name="TopicConnectionFactoryBindingName" value="ConnectionFactory" /&
&filter class="org.apache.log4j.varia.LevelRangeFilter"&
&param name="LevelMin" value="WARN" /&
&param name="LevelMax" value="ERROR" /&
&/appender&
而Product项目的测试代码相当简单:
package com.demo.
import org.apache.log4j.L
public class Main{
public static void main(String[] args) throws Exception {
Logger logger = Logger.getLogger(Main.class);
logger.debug("Debug");
logger.warn("Warn");
logger.error("Error");
logger.fatal("Fatal");
System.exit(0);
我以为就这样配置就能让WARN和ERROR级别的日志输出到jms了,但是我运行的时候却报错了:
javax.jms.JMSException: Wire format negotiation timeout: peer did not send his wire format.
at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1395)
at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1481)
at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:323)
at org.apache.activemq.ActiveMQConnection.createTopicSession(ActiveMQConnection.java:1112)
搜索这个问题,有很多人遇到了,列出了三种可能的原因:
1. You're connecting to the port not used by ActiveMQ TCP transport
Make sure to check that you're connecting to the appropriate host:port
2. You're using log4j JMS appender and doesn't filter out ActiveMQ log messages
Be sure to read
and more importantly to never send ActiveMQ log messages to JMS appender
3. Your broker is probably under heavy load (or network connection is unreliable), so connection setup cannot be completed in a reasonable time
If you experience sporadic exceptions like this, the best solution is to use failover transport, so that your clients can try connecting again if the first attempt fails. If you're getting these kind of exceptions more frequently you can also try extending wire format negotiation period (default 10 sec). You can do that by using wireFormat.maxInactivityDurationInitalDelay property on the connection URL in your client. For example:
tcp://localhost:61616?wireFormat.maxInactivityDurationInitalDelay=30000
第一种情况显然不是。
第三种情况,由于我就一个jms connection,也没有往这个连接发送jms消息,所以不可能负载过重。
第二种情况是不要把activemq的日志发送到JMSAppender了,
一文中有以下配置:
## Be sure that ActiveMQ messages are not logged to 'jms' appender
log4j.logger.org.apache.activemq=INFO, stdout
上面的意思是,对于org.apache.activemq包下的INFO级别以上的日志,都输出到stdout appender中。我对比了一下,从拷贝而来的log4j.xml中也包含了类似的配置:
&logger name="org.apache.activemq"&
&appender-ref ref="console" /&
但是为何结果还是这样?几经思考,我重新查看了一下报错的日志:
后面的内容是这样的:
org.apache.activemq.transport.WireFormatNegotiator.negociate-118 | Received WireFormat ...
于是我去找到这个类,在这个negociate方法上打上断点(Maven项目的好处还包括可以自动下载jar包对应版本的源代码),开始调试,然后发现是这一句报错:
然后我想了想能不能不打印这个debug消息呢,于是我在开始的org.apache.activemq包中加上了level限制:
&logger name="org.apache.activemq"&
&level value="INFO" /&
&appender-ref ref="console" /&
这样以后,问题解决。其实,只要我稍微细心一点,可以发现
log4j.logger.org.apache.activemq=INFO, stdout
这个配置不仅指明了org.apache.activemq包下的日志信息输出到stdout这个appender中,而且还指明了只有INFO以上的级别才能输出。二者同时指定才能达到目的,这在刚刚的xml文件中也得到体现。
现在,WARN和ERROR级别的日志就可以输出到ActiveMQ了:
在Logging项目中,和之前一样,LogMessageListener也只是简单打印了级别和内容:
public void onMessage(Message message) {
event = (LoggingEvent)((ActiveMQObjectMessage)message).getObject();
System.out.println("[" + event.getLevel() + "] | " + event.getMessage());
} catch (JMSException e) {
e.printStackTrace();
从结果中能看到输出的日志级别仅仅包括了WARN和ERROR:
至于剩下的DEBUG和INFO级别的日志,则直接配置输出到RollingFileAppender即可。日志文件的内容也当然和预期一样了:
最后贴出完整的log4j.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="[Log4j-JMS-Sample] %d{yyyy-MM-dd HH:mm:ss,SSS} %p [%t] %c.%M-%L | %m%n" /&
&/appender&
&appender name="file" class="org.apache.log4j.RollingFileAppender"&
&param name="File" value="C:\\logs\\log_debug_info.log" /&
&param name="Append" value="true" /&
&param name="MaxFileSize" value="500KB" /&
&param name="MaxBackupIndex" value="2" /&
&layout class="org.apache.log4j.PatternLayout"&
&param name="ConversionPattern"
value="%c %d{ISO8601} [%p] -- %m%n" /&
&filter class="org.apache.log4j.varia.LevelRangeFilter"&
&param name="LevelMin" value="DEBUG" /&
&param name="LevelMax" value="INFO" /&
&/appender&
&appender name="jms" class="org.apache.log4j.net.JMSAppender"&
&param name="InitialContextFactoryName"
value="org.apache.activemq.jndi.ActiveMQInitialContextFactory" /&
&param name="ProviderURL" value="tcp://localhost:61616" /&
&param name="TopicBindingName" value="logTopic" /&
&param name="TopicConnectionFactoryBindingName" value="ConnectionFactory" /&
&filter class="org.apache.log4j.varia.LevelRangeFilter"&
&param name="LevelMin" value="WARN" /&
&param name="LevelMax" value="ERROR" /&
&/appender&
&logger name="org.apache.activemq"&
&level value="INFO" /&
&appender-ref ref="console" /&
&priority value="DEBUG" /&
&appender-ref ref="console" /&
&appender-ref ref="jms" /&
&appender-ref ref="file" /&
&/log4j:configuration&
当然,如果希望再把info和debug分开,可以多配置一个fileappender,让每个过滤器的LevelMax和LevelMin的值相等并为它们配置不同的文件即可。
用云栖社区APP,舒服~
【云栖快讯】2017云栖大会·成都峰会 5月23日开幕!十余场技术论坛,百余名分享嘉宾,更有重磅发布。现场坐席有限,报名倒计时中!&&
针对日志类数据的一站式服务,用户无需开发就能快捷完成数据采集、消费、投递以及查询分析等功能,帮助提升运维、运营效...
用于实时预测用户对物品偏好,支持企业定制推荐算法,支持A/B Test效果对比
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
Loading...2161人阅读
Java(63)
& & & & log4j是很常用的日志类包,在此做一下配置的记录
加载jar包和properities配置文件
& & & & & & 将mons-logging.jar和logging-log4j.jar放在lib中
& & & & & &将log4j.properties放在src根目录中或者resource中。
properties具体配置信息
log4j.rootLogger = INFO , info, warn, error, stdout
###控制台输出
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{1}:%L - %m%n
###info级别输出
= info 
= org.apache.log4j.DailyRollingFileAppender
.File = ${webroot}/logs/convert_info.log
.Append = true
.Threshold = INFO 
.layout = org.apache.log4j.PatternLayout
.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
.datePattern='.'yyyy-MM-dd 
.Filter = org.apache.log4j.varia.LevelRangeFilter
.Filter.LevelMin=INFO
.Filter.LevelMax=INFO
###warn级别输出
log4j.logger.warn = warn 
log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.warn.File = ${webroot}/logs/convert_warn.log
log4j.appender.warn.Append=true 
log4j.appender.warn.Threshold=WARN 
log4j.appender.warn.layout=org.apache.log4j.PatternLayout 
log4j.appender.warn.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
log4j.appender.warn.datePattern='.'yyyy-MM-dd
log4j.appender.warn.filter.warnFilter=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.warn.filter.warnFilter.LevelMin=WARN
log4j.appender.warn.filter.warnFilter.LevelMax=WARN
###error级别输出
log4j.logger.error = error 
log4j.appender.error = org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.File = ${webroot}/logs/convert_error.log
log4j.appender.error.Append = true
log4j.appender.error.Threshold = ERROR 
log4j.appender.error.layout = org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.filter.errorFilter=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.error.filter.errorFilter.LevelMin=ERROR
log4j.appender.error.filter.errorFilter.LevelMax=ERROR
给webroot变量设置值
private void log4jInitialized(){
String log4jPath = &&;
log4jPath = ApplicationInitListener.class.getResource(&&).toURI().getPath();
log4jPath = log4jPath.substring(0, log4jPath.indexOf(&WEB-INF&)) + &WEB-INF&;
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.setProperty(&webroot&, log4jPath);
&&&&&&&&& 在网站应用程序初始化时调用
public void contextInitialized(ServletContextEvent arg0) {
/*初始化日志路径*/
log4jInitialized();
参考资料 &
& & & & & & &1、网上很多一样号称能够实现分级存储日志的配置,但实际上不是真正的分级存储
& & & & & & & & & &/topic/744693
& & & & & & &2、真正能够实现分级的而不需要实现编程的配置方法
& & & & & & & & & &http://wendal.net/219.html
& & & & & & &3、通过编程方式实现分级方法,有了上面的实现方式,不用进行编程,哈
& & & & & & & & & &http://blog.csdn.net/projava/article/details/7344839
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:441877次
积分:7089
积分:7089
排名:第2789名
原创:232篇
转载:226篇
评论:18条
(6)(10)(6)(6)(7)(5)(2)(6)(1)(4)(13)(5)(2)(3)(5)(7)(8)(5)(3)(5)(4)(2)(2)(3)(4)(5)(6)(5)(3)(6)(2)(3)(2)(12)(9)(11)(9)(4)(9)(11)(36)(7)(6)(2)(5)(10)(1)(6)(12)(13)(8)(14)(10)(11)(24)(32)(31)(1)(2)(8)一、Log4j配置
第一步:加入log4j-1.2.8.jar到lib下。
第二步:在CLASSPATH下建立log4j.properties。内容如下:
放在src下的话就不用配置 否则得去web.xml里面配置一个Listener
log4j.rootCategory=INFO, stdout , R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=D:\\Tomcat 5.5\\logs\\qc.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
1log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n
.neusoft=DEBUG
.opensymphony.oscache=ERROR
log4j.logger.net.sf.navigator=ERROR
log4j.logger.mons=ERROR
log4j.logger.org.apache.struts=WARN
log4j.logger.org.displaytag=ERROR
log4j.logger.org.springframework=DEBUG
.ibatis.db=WARN
log4j.logger.org.apache.velocity=FATAL
.canoo.webtest=WARN
log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
log4j.logger.org.hibernate=DEBUG
log4j.logger.org.logicalcobwebs=WARN
log4j.rootCategory=INFO, stdout , R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=D:\\Tomcat 5.5\\logs\\qc.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
1log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n
.neusoft=DEBUG
.opensymphony.oscache=ERROR
log4j.logger.net.sf.navigator=ERROR
log4j.logger.mons=ERROR
log4j.logger.org.apache.struts=WARN
log4j.logger.org.displaytag=ERROR
log4j.logger.org.springframework=DEBUG
.ibatis.db=WARN
log4j.logger.org.apache.velocity=FATAL
.canoo.webtest=WARN
log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
log4j.logger.org.hibernate=DEBUG
log4j.logger.org.logicalcobwebs=WARN
第三步:相应的修改其中属性,修改之前就必须知道这些都是干什么的,在第二部分讲解。
第四步:在要输出日志的类中加入相关语句:
定义属性:protected final Log log = LogFactory.getLog(getClass());
在相应的方法中:
if (log.isDebugEnabled()){
log.debug(&System &..&);
二、Log4j说明
1 &&&& og4j.rootCategory=INFO, stdout , R
此句为将等级为INFO的日志信息输出到stdout和R这两个目的地,stdout和R的定义在下面的代码,可以任意起名。等级可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示,具体讲解可参照第三部分定义配置文件中的logger。
3&&&&&& log4j.appender.stdout=org.apache.log4j.ConsoleAppender
此句为定义名为stdout的输出端是哪种类型,可以是
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
具体讲解可参照第三部分定义配置文件中的Appender。
4&&&&&& log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
此句为定义名为stdout的输出端的layout是哪种类型,可以是
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
具体讲解可参照第三部分定义配置文件中的Layout。
5&&&&&& log4j.appender.stdout.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n
如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为&rn&,Unix平台为&n&
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
[QC]是log信息的开头,可以为任意字符,一般为项目简称。
输出的信息
[TS] DEBUG [main] AbstractBeanFactory.getBean(189) | Returning cached instance of singleton bean 'MyAutoProxy'
具体讲解可参照第三部分定义配置文件中的格式化日志信息。
7&&&&&& log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
此句与第3行一样。定义名为R的输出端的类型为每天产生一个日志文件。
8&&&&&& log4j.appender.R.File=D:\\Tomcat 5.5\\logs\\qc.log
此句为定义名为R的输出端的文件名为D:\\Tomcat 5.5\\logs\\qc.log可以自行修改。
9&&&&&& log4j.appender.R.layout=org.apache.log4j.PatternLayout
与第4行相同。
10&&&& log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n
与第5行相同。
12&&&& . neusoft =DEBUG
指定com.neusoft包下的所有类的等级为DEBUG。
可以把com.neusoft改为自己项目所用的包名。
13&&&& .opensymphony.oscache=ERROR
14&&&& log4j.logger.net.sf.navigator=ERROR
这两句是把这两个包下出现的错误的等级设为ERROR,如果项目中没有配置EHCache,则不需要这两句。
15&&&& log4j.logger.mons=ERROR
16&&&& log4j.logger.org.apache.struts=WARN
这两句是struts的包。
17&&&& log4j.logger.org.displaytag=ERROR
这句是displaytag的包。(QC问题列表页面所用)
18&&&& log4j.logger.org.springframework=DEBUG
此句为Spring的包。
24&&&& log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
25&&&& log4j.logger.org.hibernate=DEBUG
此两句是hibernate的包。
以上这些包的设置可根据项目的实际情况而自行定制。
阅读(...) 评论()本帖子已过去太久远了,不再提供回复功能。日志信息(1)
JavaSE/JavaEE(20)
使用log4j 记录日志甚是方便,其提供了两种日志配置方式,log4j.propertes和log4j.xml,这篇文件先贴出log4j.properties配置方式
1、log4j.properties文件配置简析
下面给出了log4j.properties文件常用的一些信息,在使用时只需拷贝部分过来并把注释放开即可,如有问题 感谢留言指正.
##logger是进行记录的主要类,appender是记录的方式,layout是记录的格式
#Logger - 日志写出器,供程序员输出日志信息
#Appender - 日志目的地,把格式化好的日志信息输出到指定的地方去
#ConsoleAppender - 目的地为控制台的Appender
#FileAppender - 目的地为文件的Appender
#RollingFileAppender - 目的地为大小受限的文件的Appender
#Layout - 日志格式化器,用来把程序员的logging request格式化成字符串
#PatternLayout - 用指定的pattern格式化logging request的Layou
#Log4j提供的appender有以下几种:
#  org.apache.log4j.ConsoleAppender(控制台),
#  org.apache.log4j.FileAppender(文件),
#  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
#  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
#  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
#Log4j提供的layout有以下几种:
#  org.apache.log4j.HTMLLayout(以HTML表格形式布局),
#  org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
#  org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
#  org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
#Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下
%m 输出代码中指定的消息
%M 输出日志发生的方法名
#  %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
#  %r 输出自应用启动到输出该log信息耗费的毫秒数
#  %c 输出所属的类目,通常就是所在类的全名
#  %t 输出产生该日志事件的线程名
#  %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
#  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:日 22:10:28,921
#  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
%L 输出日志发生的位置
%F 输出类名
#####################################################################
#设置级别和目的地 -- 把日志等级为debug的日志信息输出到stdout和SYS,QUERY这三个目的地
log4j.rootLogger=debug,STDOUT
# stdout:目的地 -- 打印到屏幕
## org.apache.log4j.ConsoleAppender:控制台
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
## org.apache.log4j.PatternLayout:灵活地指定布局模式
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
## 上一句设置了PatternLayout灵活指定格式,则要指定打印参数 [%-5p][%d{HH:mm:ss}][%c-%M] %m%n
[%-5p][%d{HH:mm:ss}][%l] %m%n
log4j.appender.STDOUT.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss sss}][%t][%c-%M][%L](%F:%L) - %m%n
# QUERY:目的地 -- 输出到文件(限定每个文件大小)
## 凡是 info、warn、error、fatal 级别的数据都会在这里执行输出到 query.log 日志文件中
##log4j.logger.QUERY=INFO,QUERY
log4j.logger.QUERY=INFO
##输出到文件(这里默认为追加方式),使用org.apache.log4j.FileAppender:日志会在一个文件中追加
log4j.appender.QUERY=org.apache.log4j.RollingFileAppender
##设置文件输出路径;html:log/query.html
log4j.appender.QUERY.File=log/query.log
##设置文件输出样式;html格式: org.apache.log4j.HTMLLayout
log4j.appender.QUERY.layout=org.apache.log4j.PatternLayout
## 上一句设置了PatternLayout灵活指定格式,则要指定打印参数 [%-5p][%d{HH:mm:ss}][%l] %m%n
log4j.appender.QUERY.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss}][%c-%M] %m%n
## 指定文件的最大 大小
log4j.appender.QUERY.MaxFileSize=2048KB
## 可被备份的日志数
log4j.appender.QUERY.MaxBackupIndex=100
# SYS:目的地 -- 输出到文件(每天产生一个文件)
## 凡是 error、fatal 级别的数据都会在这里执行输出到 sys.log 日志文件中
#log4j.logger.SYS=error,SYS
log4j.logger.SYS=error
## org.apache.log4j.RollingFileAppender:每天产生一个日志文件
#使用org.apache.log4j.FileAppender:日志会在一个文件中追加
log4j.appender.SYS=org.apache.log4j.DailyRollingFileAppender
##设置文件输出路径 ${user.home}/log/sys.log
log4j.appender.SYS.File=log/sys.log
## org.apache.log4j.PatternLayout:灵活地指定布局模式
log4j.appender.SYS.layout=org.apache.log4j.PatternLayout
## 上一句设置了PatternLayout灵活指定格式,则要指定打印参数 [%-5p][%d{HH:mm:ss}][%l] %m%n
log4j.appender.SYS.layout.ConversionPattern=[%-5p][%d{HH:mm:ss}][%C-%M] %m%n
#设置特定包的级别
##com.swh.weixin包下的日志内容显示级别为debug,和目的地
## 把com.swh.weixin.util包下日志等级为debug的信息输出到pack 目的地
#.swh.weixin.util=debug,pack
##输出到文件(这里默认为追加方式),使用org.apache.log4j.FileAppender:日志会在一个文件中追加
log4j.appender.pack=org.apache.log4j.RollingFileAppender
##设置文件输出路径
或者 ${user.home}/log/pack.log
log4j.appender.pack.File=log/pack.log
##设置文件输出样式
log4j.appender.pack.layout=org.apache.log4j.PatternLayout
## 上一句设置了PatternLayout灵活指定格式,则要指定打印参数 [%-5p][%d{HH:mm:ss}][%l] %m%n
log4j.appender.pack.layout.ConversionPattern=[%-5p][%d{yyyy MM dd HH:mm:ss}][%c-%M] %m%n
## 指定文件的最大 大小
log4j.appender.pack.MaxFileSize=1024KB
#日志最大备份数目
log4j.appender.pack.MaxBackupIndex=100
########################################################################
##设置级别和目的地
#log4j.rootLogger=debug,appender1,appender2
##只设置特定包的级别和目的地
#.coderdream=debug,appender1
#.coderdream.Dao=info,appender1,appender2
##输出到控制台
#log4j.appender.appender1=org.apache.log4j.ConsoleAppender
##设置输出样式
#log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
##自定义样式
## %r 时间 0
## %t 方法名 main
## %p 优先级 DEBUG/INFO/ERROR
## %c 所属类的全名(包括包名)
## %l 发生的位置,在某个类的某行
## %m 输出代码中指定的讯息,如log(message)中的message
## %n 输出一个换行符号
#log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n
##输出到文件(这里默认为追加方式)
#log4j.appender.appender2=org.apache.log4j.FileAppender
##设置文件输出路径
##【1】文本文件
#log4j.appender.appender2.File=c:/Log4JCRM_Dao.log
##设置文件输出样式
#log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
#log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M] -%m%n
##把日志文件写入数据库
##########################日志输出到远程数据库########################################
##把日志文件写入数据库
##记录的日志级别
log4j.logger.db=info
##日志输出到数据库
log4j.appender.db = org.apache.log4j.jdbc.JDBCAppender
log4j.appender.db.BufferSize = 0
##数据库驱动
log4j.appender.db.Driver = com.mysql.jdbc.Driver
##数据url地址 ,本地可简写:jdbc:mysql:///test
log4j.appender.db.URL = jdbc:mysql://localhost:3306/swh_hibernate4?useUnicode=true&characterEncoding=utf8
##数据库用户名
log4j.appender.db.User = root
##数据库密码
log4j.appender.db.Password = root
##日志布局模式
log4j.appender.db.layout = org.apache.log4j.PatternLayout
##日志插入数据库中,t_logs 表字段可自定义
log4j.appender.db.layout.ConversionPattern = INSERT INTO t_logs(createDate, thread, priority, category,&br /&
methodName, message) values('%d', '%t', '%-5p', '%c','%M', '[%l]-%m')
下一篇文章会贴出关于log4j.xml的配置详解&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:54705次
排名:千里之外
原创:30篇
(1)(2)(6)(4)(1)(7)(3)(1)(1)(2)(1)(1)(3)

我要回帖

更多关于 log 日志级别 的文章

 

随机推荐