上一篇主要介绍了log4j的基本架构,对于开发者来说,其实我们更关注具体的使用。log4j的配置很灵活,基本可以实现你所想的效果。下边我就结合log4j架构来分析和解释配置的具体含义。

  log4j配置有两种形式,第一种是xml格式,默认名称为log4j.xml.另一种是log4j.properties,我们项目中用后者就多,其实配置都是一样, 表现形式不同,下边就properties格式举例说明。

  首先配置根目录

    配置语法为:log4j.rootLogger=[Level],appender1,appender2

    如:log4j.rootLogger=error,CONSOLE,R

    所有的日志都是它的子类。如果没对具体子类设置日志级别,那就默认为跟雷的日志级别。

  同样除了根目录外,你可以对你某个包定义一个日志。

    配置语法为:log4j.[package]=[Level],appender1,appender2\

    如:log4j.logger.com.jsits=debug,RECORD 

 

 

  Appender配置:

   Appender可以理解为日志写到哪个地方。  

   其语法为: 

      log4j.appender.appenderName = fully.qualified.name.of.appender.class 
      log4j.appender.appenderName.option1 = value1 
      log4j.appender.appenderName.optionN = valueN 

    如:

      log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
        log4j.appender.R.File=logs/log               //设置输出文件
      log4j.appender.R.Encoding=UTF-8         //设置输出编码格式
      log4j.appender.R.Threshold=error         //设置输出最低级别
      log4j.appender.R.DatePattern='-'yyyy-MM-dd HH'.log' //设置输出文件的组织格式(该格式为每一小时产生一个日志文件)
      log4j.appender.R.layout=org.apache.log4j.PatternLayout //设置layout
      log4j.appender.R.layout.ConversionPattern=[%t] %d %-5p - %m(%F.%M:%L)%n //设置日志样式
      log4j.appender.file.encoding=UTF-8 

    其中, Log4j 提供的 appender 有以下几种: 
      org.apache.log4j.ConsoleAppender (控制台), 
      org.apache.log4j.FileAppender (文件), 
      org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件), 
      org.apache.log4j.RollingFileAppender (文件大小到达指定尺寸的时候产生一个新的文件),可通过 log4j.appender.R.MaxFileSize=100KB 设置文件大小,还可通过        log4j.appender.R.MaxBackupIndex=1 设置为保存一个备份文件。 
      org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)

 

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

          格式化日志信息 
      Log4J 采用类似 C 语言中的 printf 函数的打印格式格式化日志信息,打印参数如下: 
      %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} ,输出类似: 2002 年 10 月 18 日 22         : 10 : 28 , 921 
      %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数

 

    主题配置大概这样。希望有所帮助