博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
log4j.xml输出日志调试过程
阅读量:2061 次
发布时间:2019-04-29

本文共 3961 字,大约阅读时间需要 13 分钟。

现在业务系统运行也有日志输出,读的是log4j.properties,配置如下:

#-------------------------------

log4j.rootCategory=DEBUG, stdout

#每天输出一个日志
log4j.appender.stdout=org.apache.log4j.DailyRollingFileAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d - %m%n
#%-d{yyyy-MM-dd HH:mm:ss,SSS}
%d 输出日志时间点的日期或时间
#%m 输出代码中指定的消息
#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
#%r 输出自应用启动到输出该log信息耗费的毫秒数
#%c 输出所属的类目,通常就是所在类的全名
#%t 输出产生该日志事件的线程名
#%n 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-ddHH:mm:ss} - %p - %m%n
#输出文件的名字
log4j.appender.stdout.File=E:\\tomcatLog\\test.log
#日志优先级别由低到高 DEBUG  INFO WARN  ERROR  FATAL
log4j.appender.stdout.Threshold=DEBUG

#---------------------------

描述:系统所有输出日志都写到文件E:\\tomcatLog\\test.log,不能更具日志debug,info,warn,error和fatal级别分别输出到不同的文件。

 

在网上查询log4j.xml,然后修改相关配置,配置如下:

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE log4j:configuration SYSTEM"log4j.dtd">

<log4j:configuration xmlns:log4j="">

 

<!--debug日志输出配置-->

 <appender name="debug"

  class="org.apache.log4j.DailyRollingFileAppender">
  <paramname="File" value="D:/data/programe/cgt/log/debug.txt"/>
  <paramname="Append" value="true" />
  <layoutclass="org.apache.log4j.PatternLayout">
   <paramname="ConversionPattern" value="%d [%t] %p - %m%n"/>
  </layout>
  <filterclass="org.apache.log4j.varia.LevelRangeFilter">
   <paramname="LevelMax" value="DEBUG"/><!--过滤只输出DEBUG级别日志-->
   <paramname="LevelMin" value="DEBUG" />
  </filter>

 </appender>

 

<!--infor日志输出配置-->

 <appender name="info"

  class="org.apache.log4j.DailyRollingFileAppender">
  <paramname="File" value="D:/data/programe/cgt/log/info.txt"/>
  <paramname="Append" value="true" />
  <layoutclass="org.apache.log4j.PatternLayout">
   <paramname="ConversionPattern" value="%d [%t] %p - %m%n"/>
  </layout>
  <filterclass="org.apache.log4j.varia.LevelRangeFilter">
   <paramname="LevelMax" value="INFO" />
   <paramname="LevelMin" value="INFO" />
  </filter>

 </appender>

<!--warn日志输出配置-->

 <appender name="warn"
  class="org.apache.log4j.DailyRollingFileAppender">
  <paramname="File" value="D:/data/programe/cgt/log/warn.txt"/>
  <paramname="Append" value="true" />
  <layoutclass="org.apache.log4j.PatternLayout">
   <paramname="ConversionPattern" value="%d [%t] %p - %m%n"/>
  </layout>
  <filterclass="org.apache.log4j.varia.LevelRangeFilter">
   <paramname="LevelMax" value="WARN" />
   <paramname="LevelMin" value="WARN" />
  </filter>

 </appender>

 

<!--error日志输出配置-->

 <appender name="error"

  class="org.apache.log4j.DailyRollingFileAppender">
  <paramname="File" value="D:/data/programe/cgt/log/error.txt"/>
  <paramname="Append" value="true" />
  <layoutclass="org.apache.log4j.PatternLayout">
   <paramname="ConversionPattern" value="%d [%t] %p - %m%n"/>
  </layout>
  <filterclass="org.apache.log4j.varia.LevelRangeFilter">
   <paramname="LevelMax" value="ERROR" />
   <paramname="LevelMin" value="ERROR" />
  </filter>

 </appender>

 

<!--fatal日志输出配置-->

 <appender name="fatal"

  class="org.apache.log4j.DailyRollingFileAppender">
  <paramname="File" value="D:/data/programe/cgt/log/fatal.txt"/>
  <paramname="Append" value="true" />
  <layoutclass="org.apache.log4j.PatternLayout">
   <paramname="ConversionPattern" value="%d [%t] %p - %m%n"/>
  </layout>
  <filterclass="org.apache.log4j.varia.LevelRangeFilter">
   <paramname="LevelMax" value="FATAL" />
   <paramname="LevelMin" value="FATAL" />
  </filter>

 </appender>

 <root>
  <priorityvalue="debug"/><!--日志输出最低级别-->
  <appender-refref="debug"/><!--debug日志输出-->
  <appender-refref="info"/><!--info日志输出-->
  <appender-refref="warn"/><!--warn日志输出-->
  <appender-refref="error"/><!--error日志输出-->
  <appender-refref="fatal"/><!--fatal日志输出-->
 </root>

</log4j:configuration>

 

这样就可以把系统不同级别的输出到不同的文件了。

 

一点想法【个人观点】:

log4j.properties:使用这个配置,所有输出都输出到一个文件中,这样在系统调试过程比较合适,这样可以跟踪业务流程;

log4j.xml:使用这个配置不同级别的日志输出到不同的文件夹,比较适合于系统正式上线运行阶段,这个可以很快的定位到错误所在,但要求必须熟悉系统流程,看到异常日志时能知道问题是出到哪一块了。

 

 

如果把log4j.xml和log4j.properties都放到classes文件加下,系统会自动先去查找log4j.xml配置文件,如果log4j.xml存在,那么系统日志将按照log4j.xml配置输出;不过log4j.xml不存在,则查找log4j.properties文件。

转载地址:http://pvalf.baihongyu.com/

你可能感兴趣的文章
google app api相关(商用)
查看>>
linux放音乐cd
查看>>
GridView+存储过程实现'真分页'
查看>>
flask_migrate
查看>>
解决activemq多消费者并发处理
查看>>
UDP连接和TCP连接的异同
查看>>
hibernate 时间段查询
查看>>
java操作cookie 实现两周内自动登录
查看>>
Tomcat 7优化前及优化后的性能对比
查看>>
Java Guava中的函数式编程讲解
查看>>
Eclipse Memory Analyzer 使用技巧
查看>>
tomcat连接超时
查看>>
谈谈编程思想
查看>>
iOS MapKit导航及地理转码辅助类
查看>>
检测iOS的网络可用性并打开网络设置
查看>>
简单封装FMDB操作sqlite的模板
查看>>
iOS开发中Instruments的用法
查看>>
iOS常用宏定义
查看>>
被废弃的dispatch_get_current_queue
查看>>
什么是ActiveRecord
查看>>