您现在的位置是:主页 > Web前端技术 > Web前端技术

log4j如何控制日志输出文件名称开发技术

IDCBT2021-12-27服务器技术人已围观

简介小编给大家分享一下log4j如何控制日志输出文件名称,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一

小编给大家分享一下log4j如何控制日志输出文件名称,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

      log4j控制日志输出文件名称1. 第一种方式

      在类对象中用如下方式定义logger变量

      private static Logger logger = Logger.getLogger("lemmaXml");

      这样通过名称的方式获取logger,需要在log4j.properties文件中定义一个名称为lemmaXml的appender,配置如下:

      log4j.logger.lemmaXml=INFO,lemmaXml
      log4j.appender.lemmaXml=org.apache.log4j.DailyRollingFileAppender
      log4j.appender.lemmaXml.Threshold=DEBUG
      log4j.appender.lemmaXml.File=${catalina.home}/logs/lemmaXml.log
      log4j.appender.lemmaXml.layout=org.apache.log4j.PatternLayout
      log4j.appender.lemmaXml.layout.ConversionPattern=%5p %d{yyyy-MM-dd HH:mm:ss} %m %n

      上述配置说明,名称为lemmaXml的appender,是每天形成一个日志文件,日志文件的名称为

      ${catalina.home}/logs/lemmaXml.log

      日志的格式为

      %5p %d{yyyy-MM-dd HH:mm:ss} %m %n
      2. 第二种方式(这种方式亲测正确)

      在类对象中用如下方式定义logger变量

      import org.apache.log4j.Logger;
      private static Logger logger = Logger.getLogger(ExportLemmaManagerService.class);

      即,通过类的参数来获取logger变量,此时必然也需要在log4j.properties文件有关于该对象日志文件的输出配置,当然这里的配置不是针对每个类专门配置,而是针对一个路径整体配置,即,你可以配置某个目录下的所有类方式的输出文件的文件名称,如下

      log4j.rootLogger=info,stdout 
      log4j.appender.stdout=org.apache.log4j.ConsoleAppender
      log4j.appender.stdout.Threshold=DEBUG
      log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
      log4j.appender.stdout.layout.ConversionPattern=%5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n
        
      log4j.logger.com.soso.baike.service=DEBUG,ServiceLog
      log4j.appender.ServiceLog=org.apache.log4j.DailyRollingFileAppender
      log4j.appender.ServiceLog.Threshold=DEBUG
      log4j.appender.ServiceLog.File=${catalina.home}/logs/service.log
      log4j.appender.ServiceLog.MaxBackupIndex=10
      log4j.appender.ServiceLog.layout=org.apache.log4j.PatternLayout
      log4j.appender.ServiceLog.layout.ConversionPattern=%5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n

      上述配置了目录com.soso.baike.service下的输出文件方式,上述ExportLemmaManagerService类就是在该包下,所以用该包下的类方式来定义logger的话,输出的文件就都在service.log文件中,每天生成一个新的日志文件。

      标签:

      很赞哦! ()

本栏推荐