log4j配置

log4j的配置文件是用来设置日志输出级别,存放位置和日志布局的。

log4j的配置有两种文件格式,log4j.porperties 和 log4j.xml,任选其一都可以。

log4j.porperties 比 log4j.xml要简洁,但是不支持一些高级的配置选项,比如Filters, 自定义的ErrorHandlers和特殊的Appender(即 AsyncAppender)。

log4j.porperties的基本格式如下:(其中appenderName1为用户自己定义的名字)

#配置根Logger
log4j.rootLogger=【level】, appenderName1 
####用户自定义的一些 Appender #配置日志信息输出 log4j.appender.appenderName1
=【Appender】 #配置日志信息的格式(布局) log4j.appender.appenderName1.layout=【Layout】
#配置日志信息打印参数
log4j.appender.
appenderName1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

log4j.xml的基本格式如下:(其中appenderName1为用户自己定义的名字)

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" version="22">  
####用户自定义的一些 Appender <appender name="appenderName1" class=【Appender】> <layout class=【Layout】> #日志格式 <param name="patternName1" value="%d [%t] %-5p %c [%x] - %m%n"/> #日志打印参数 </layout> <filter class="com.twofishes.config.log4j.LoggerMatchFilter"> #自定义的Filter <param name="loggerToMatch" value="com.twofishes.config"/> <param name="acceptOnMatch" value="false"/> </filter> </appender>
####配置根Logger <root> <priority value=【Level】/> <appender-ref ref="appenderName1"/> </root> </log4j:configuration>

【level】日志的输出级别,有以下几种选项:

FATAL      0  
ERROR      3  
WARN       4  
INFO       6  
DEBUG      7 

【Appender】 日志输出位置,有以下几种选项:

org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

【Layout】日志输出格式,有以下几种选项:

org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

%-4r [%t] %-5p %c %x - %m%n 打印参数,类似C语言中的printf函数的打印格式格式化日志信息,如下:

   %m   输出代码中指定的消息
  %p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
  %r   输出自应用启动到输出该log信息耗费的毫秒数 
  %c   输出所属的类目,通常就是所在类的全名 
  %t   输出产生该日志事件的线程名 
  %n   输出一个回车换行符,Windows平台为“
”,Unix平台为“
” 
  %d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  221028921  
  %l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) 

配置使用方式:

//方式一:自动快速的使用Log4J缺省的环境
//BasicConfigurator.configure();
//方式二:读取properties文件(自定义位置),但是注意这里文件的加载路径 //PropertyConfigurator.configure("E:/workspace-idea/study-demo/log4j-test/src/main/resources/log4j/log4j.properties"); //PropertyConfigurator.configure(HowUseLog4JDemo.class.getClassLoader().getResource("log4j/log4j.properties").getFile()); //方式三:读取XML文件 //DOMConfigurator.configure("xxx");
原文地址:https://www.cnblogs.com/happySmily/p/5953300.html