WEB项目中log4j.properties配置

WEB项目中,经常会查看系统项目日志、根据日志信息了解系统运行情况以及根据错误日志信息,对系统进行改造升级!而我们常用到的配置日志类型就是log4j。
在这里就简单对过去配置过的log4j日志做一个简单总结:1、配置log4j日志无非就是添加log4j的相应jar包(如:log4j-1.2.16.jar),所需jar包来源搞开发的根本就不是难事;2、配置log4j配置文件,即配置log4j.properties;3、在WEB.XML中加载log4j.properties文件;4、就是在自己的WEB项目中书写必要的日志信息。

这里主要针对2、3点进行简单的综述:
1、配置log4j.properties文件:
a、配置log4j.properties文件,既是配置所需要的logger组件,首先是要配置logger根组件,如:
//配置根logger(INFO是此logger的输出级别,logger的输出级别分别为"OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL",级别是由高低);Console、fileLogger等指的是日志的输出目的地,可由自己自由指定(在这里Console指控制台,fileLogger指输出到指定的文件)
log4j.rootLogger=INFO,Console,fileLogger,appender1,appender2 
  b、配置输出到控制台的日志组件,如:
//日志信息输出到控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
//配置日志信息的格式(布局)
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
//配置日志信息具体输出的格式
 /**
   * 格式化符号说明:
   * %p:输出日志信息的优先级,即DEBUG,INFO,WARN,ERROR,FATAL。
   * %d:输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,如:%d{yyyy/MM/dd HH:mm:ss,SSS}。
   * %r:输出自应用程序启动到输出该log信息耗费的毫秒数。
   * %t:输出产生该日志事件的线程名。
   * %l:输出日志事件的发生位置,相当于%c.%M(%F:%L)的组合,包括类全名、方法、文件名以及在代码中的行数。
   * %c:输出日志信息所属的类目,通常就是所在类的全名。
   * %M:输出产生日志信息的方法名。
   * %F:输出日志消息产生时所在的文件名称。
   * %L::输出代码中的行号。
   * %m::输出代码中指定的具体日志信息。
   * %n:输出一个回车换行符,Windows平台为"rn",Unix平台为"n"。
   * %x:输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
   * %%:输出一个"%"字符。
   * 另外,还可以在%与格式字符之间加上修饰符来控制其最小长度、最大长度、和文本的对齐方式。如:
   * 1) c:指定输出category的名称,最小的长度是20,如果category的名称长度小于20的话,默认的情况下右对齐。
   * 2)%-20c:"-"号表示左对齐。
   * 3)%.30c:指定输出category的名称,最大的长度是30,如果category的名称长度大于30的话,就会将左边多出的字符截掉,但小于30的话   * 也不会补空格。
   */
log4j.appender.Console.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss:SSS} %p %t] %c - %m%n
c、配置输出到文件的日志组件,如:
一、日志信息输出到指定文件中:
//日志以文件形式输出
log4j.appender.fileLogger=org.apache.log4j.FileAppender
log4j.appender.fileLogger.layout=org.apache.log4j.PatternLayout
//日志信息输出到指定目录下的文件(指生成的日志文件在系统的根目录下的logs文件夹中的sshlog文件,文件名即为sshlog)
log4j.appender.fileLogger.File=../../logs/sshlog
//输出日志文字的编码格式(最常用的位UTF-8,根据自己所需来赋值)
log4j.appender.fileLogger.encoding=UTF-8
//true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true(故此组件一般可以不用配置)
log4j.appender.fileLogger.Append=true
//表示所有消息都会被立即输出,设为false则不输出,默认值是true(故此组件一般可以不用配置)
log4j.appender.fileLogger.ImmediateFlush=true
log4j.appender.fileLogger.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss:SSS} %p %t] %c - %m%n
二、生成的日志文件大小到达指定大小的时候产生一个新的文件
//日志以回滚的文件形式输出
log4j.appender.appender1=org.apache.log4j.RollingFileAppender
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.appender1.File=../../logs/sshlog
log4j.appender.appender1.encoding=UTF-8
log4j.appender.appender1.Append=true
log4j.appender.appender1.ImmediateFlush=true
//生成的日志文件到达指定大小时,将会自动滚动,即将原来的内容移到sshlog.1文件中(以此类推,sshlog.2.....),后缀单位可以为// KB,MB,GB
log4j.appender.appender1.MaxFileSize=20480KB
//指定可以产生的滚动文件的最大数(这里指最多可以产生sshlog,sshlog.1,sshlog.2....sshlog.10十一个日志文件)
log4j.appender.appender1.MaxBackupIndex=10
log4j.appender.appender1.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss:SSS} %p %t] %c - %m%n
三、每天产生一个日志文件
//日志以每天回滚的文件形式输出
 /**
   * DailyRollingFileAppender中可以指定monthly(每月)、weekly(每周)、daily(每天)、half-daily(每半天)、hourly(每小时)和minutely(每分钟)   *六个频度,这是通过
   * 为 DatePattern选项赋予不同的值来完成的。DatePattern选项的有效值为: 
                                   *  yyyy-MM,对应monthly(每月)
                           *  yyyy-ww,对应weekly(每周)
                           *  yyyy-MM-dd,对应daily(每天)
                           *  yyyy-MM-dd-a,对应half-daily(每半天)
   *  yyyy-MM-dd-HH,对应hourly(每小时)
   *  yyyy-MM-dd-HH-mm,对应minutely(每分钟)
   */
log4j.appender.appender2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
//产生的日志文件名为在原有文件名的基础上追加'_'yyyyMMdd'.log',有次可以推断出每天生成的文件名为"sshlog_20141231.log"
log4j.appender.appender2.DatePattern='_'yyyyMMdd'.log'
log4j.appender.appender2.File=../../logs/sshlog
log4j.appender.appender2.encoding=UTF-8
log4j.appender.appender2.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss:SSS} %p %t] %c - %m%n

2、在WEB.XML中加载log4j.properties文件:


log4jRefreshInterval
10000


org.springframework.web.util.Log4jConfigListener

你可能感兴趣的:(综合,WEB开发(JAVA))