Log4j tomcat下日志管理,解决日志文件过大无法清理问题

1.log4j.properties配置文件如下

# Global logging configuration
log4j.rootLogger=info, stdout, RollingFile
#log4j.rootLogger=WARN, stdout

#Threshold 设置为OFF时控制台不再输出信息
# Console output... log4j.appender.stdout
=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.Threshold=OFF log4j.appender.stdout.layout.ConversionPattern
=%-d{yyyy-MM-dd HH\:mm\:ss:SSS} [%p]-[%c] %m%n #${catalina.base}指向每个Tomcat目录私有信息的位置,就是conf、logs、webapps的父目录。 #File 指定消息输出到RollingFile.log文件中 #RollingFile (文件大小到达指定尺寸的时候产生一个新的文件) log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender log4j.appender.RollingFile.File = ${catalina.base}/logs/RollingFile.log log4j.appender.RollingFile.MaxFileSize=100MB log4j.appender.RollingFile.MaxBackupIndex=3 log4j.appender.RollingFile.layout = org.apache.log4j.PatternLayout log4j.appender.RollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n

MaxFileSize=100MB:后缀可以是KB, MB 或者GB。在日志文件到达该大小时,将会自动滚动,即将原来的内容移到RollingFile.log.1文件中。

MaxBackupIndex=3:指定可以产生的滚动文件的最大数,例如,设为2则可以产生RollingFile.log.1,RollingFile.log.2两个滚动文件和一个RollingFile.log文件。

 

Log4j中提供的Appender主要有以下几种:

org.apache.log4j.ConsoleAppender(控制台), 

org.apache.log4j.FileAppender(文件), 

org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), 

org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), 

org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

 

2.将控制台异常详细信息保存在日志中

  try {
   //执行业务
  } catch (Exception e) {
   e.printStackTrace();
   log.info(getTraceString(e));
  }


//异常信息转换字符串
public String getTraceString(Throwable t) {
        StringWriter stringWriter= new StringWriter();
        PrintWriter writer= new PrintWriter(stringWriter);
        t.printStackTrace(writer);
        StringBuffer buffer= stringWriter.getBuffer();
        return buffer.toString();
}

  

 

posted @ 2021-01-14 15:53  海洋svs  阅读(801)  评论(0编辑  收藏  举报