Log4j.properties配置文件

 

1.配置文件

#log4j.rootLogger = [ level ] , appenderName, appenderName, ...

log4j.rootLogger = INFO, console, R
#level=INFO,all can be output
#console is set to be a ConsoleAppender
log4j.appender.console = org.apache.log4j.ConsoleAppender
#console have four patterns
#org.apache.log4j.HTMLLayout
#org.apache.log4j.PatternLayout
#org.apache.log4j.SimpleLayout
#org.apache.log4j.TTCCLayout
log4j.appender.console.layout = org.apache.log4j.PatternLayout


## notice: [localhost-startStop-1] [%t] params
#define the output type
log4j.appender.console.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%t] [%c]-[%p] %m%n
#file is set to output to a extra file
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
##it will not change to yyyy-MM-dd.txt in current date
log4j.appender.R.DatePattern=yyyy-MM-dd'.txt'
#the absolute route of the log4j file
log4j.appender.R.File = e:/rencongums/dailylog/log_
#the size
#MaxFileSize doesn't apply to DailyRollingFileAppender
#log4j.appender.R.MaxFileSize = 500KB
#back up a file
#MaxBackupIndex doesn't apply to DailyRollingFileAppender
#log4j.appender.R.MaxBackupIndex = 1
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] - %m%n

2.文件放置路径

一般情况下都放在src目录下,对于Javaweb项目,也可以放在其他项目,比如放在/WEB-INF/classes/resources/下面,那么需要在web.xml文件中配置

  <!-- 如果不放在 src根目录下就要重写配置log4jConfigLocation-->
    <context-param>  
      <param-name>log4jConfigLocation</param-name>  
      <param-value>/WEB-INF/classes/resources/log4j.properties</param-value>  
    </context-param> 

 

3.配置参数

3.1 log4j.rootLogger = INFO, console, R

##log4j.rootLogger = [ level ] , appenderName, appenderName, ...

log4j.rootLogger = INFO, console, R

其中这个rootLogger就是这么个玩意儿,代码如下:

配置这个rootLogger的,感觉就是根据repositorySelector来生成一个loggerRepository,然后每次都由这个loggerRepository来产生一个logger。具体可以参见

org.apache.log4j.config这个包。

这一行定义logger,第一个是日志输出级别,级别包括INFO,DEBUG,INFO,ERROR,FATAL,WARN,TRACE,ALL等具体的可以在Logger类中看到这几个方法。

对应的分别是info(Object message),debug(Object message)...等等,也可以在Level类中看到

他们的顺序大概是这个样子

fatal肯定在最上面,然后就是下面的依次来,可以参见Priorty这个类,虽然已经不推荐了,但是顺序并没有改变。

 

 

appenderName可以随便取名字,也可以可以多个,一般一个console(或者stdout)对应输出到控制台,另一个就是R(或者file)对应到log.txt作为日志文件输出。

3.2 log4j.appender

 如下是我们可以看到的appender的各个继承结构

首先用得很多的就是writerAppender.其中ConsoleAppender和RollingFileAppender是用的比较多的,一个用于控制台,一个用于日志记录。

对于ConsoleAppender需要配置三个东东。

log4j.appender.console = org.apache.log4j.ConsoleAppender

log4j.appender.console.layout = org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%t] [%c]-[%p] %m%n

 

对于FileAppender需要配置如下一些东东。

log4j.appender.R = org.apache.log4j.DailyRollingFileAppender##就是按天来记录

##这个天不是每天都产生,而是运行的每一天,如果某天不运行还是没有的,而且在当天虽然是产生的,但是并不带有日期后缀。

##it will not change to yyyy-MM-dd.txt in current date
log4j.appender.R.DatePattern=yyyy-MM-dd'.txt'##就是当天就叫做e:/rencongums/dailylog/log_,下一次就把这一次改为log_yyyy-MM-dd.txt

#DatePattern仅适用于DailyRollingFileAppender

log4j.appender.R.File = e:/rencongums/dailylog/log_

 

#MaxFileSize doesn't apply to DailyRollingFileAppender
#log4j.appender.R.MaxFileSize = 500KB
#MaxBackupIndex doesn't apply to DailyRollingFileAppender
#log4j.appender.R.MaxBackupIndex = 1

##MaxFileSize和MaxBackupIndex不适用于DailyRollingFileAppender,适用于RollingFileAppender当日志记录满的时候会生成一个log(1).txt

也同样有layout和layout.ConversionPattern

log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] - %m%n

 

所以简单的配置基本上就三个东东 appender,layout和layout.ConversionPattern,日志文件的话会指定名称和其他的一些参数。

而对于layout又基本包括以下等几种

#org.apache.log4j.HTMLLayout
#org.apache.log4j.PatternLayout
#org.apache.log4j.SimpleLayout
#org.apache.log4j.TTCCLayout

而其中PatternLayout里面有这样一个方法

就是设置COnversionPattern,所以也不难看到上面需要设置ConversionPattern

关于ConversionPattern中各个参数的信息可以看到

大概就是这么个意思。

3.3 log4j.logger

log4j.logger.(+包名) 表示该包的日志级别

log4j.logger.com.cong.orm=TRACE

 

 以上就是我的个人理解咯

 

posted @ 2016-09-01 16:29  珞珈搬砖工  阅读(127)  评论(0)    收藏  举报