如何在Maven构建的Java项目中使用log4j 第一步:添加依赖 第二步:添加配置文件 第三步:在项目中使用

参考:

https://www.jianshu.com/p/ccafda45bcea

说明:

本文仅仅作为项目开发过程中的记录,不提供详细的说明。按照步骤直接复制粘贴即可成功使用。

      <!-- https://mvnrepository.com/artifact/log4j/log4j -->
      <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.17</version>
      </dependency>

第二步:添加配置文件

文件位置说明:直接放在resources目录下。

#### set log levels ###
log4j.rootLogger = info, stdout , D
#
####  output to the console ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{HH:mm:ss}-[%p] [%c] - %m%n
#
#### Output to the log file ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${springmvc.root}/WEB-INF/logs/debug.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}-[%p] [%l] - %m%n
#
#### Output to the log file ###
log4j.appender.I = org.apache.log4j.DailyRollingFileAppender
log4j.appender.I.File = ${springmvc.root}/WEB-INF/logs/info.log
log4j.appender.I.Append = true
log4j.appender.I.Threshold = INFO
log4j.appender.I.layout = org.apache.log4j.PatternLayout
log4j.appender.I.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}-[%p] [%l] - %m%n
#
#### Save exception information to separate file ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = ${springmvc.root}/WEB-INF/logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}-[%p] [%l] - %m%n

参数简单说明:

log4j.rootLogger = info, stdout , D

1、第一个参数是日志记录的最低级别,可以是info,debug,warn,error。后面的参数是appender的名字,表示采用下面的哪一个配置,将日志输出到相应的位置。

2、例如D表示,采用 log4j.appender.D的配置信息,按照他的要求,将日志输出到指定位置,D是appender的名字,是可以自己取的。

3、具体参数的含义可以看上面的参考链接,那位兄弟列举的比较全面。

4、${springmvc.root}需要特殊说明一下,该参数在web.xml下配置了一下:

  <context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>springmvc.root</param-value>
  </context-param>

其中springmvc.root是可以随意取名的,${springmvc.root}表示项目的根路径(webapp)。

5、日志输出格式做了简单的配置,尽量保证控制台输出比较简单,向文件输出的时候详细一点,方便排查问题。

第三步:在项目中使用

可以看下下面的代码,其他用法可以根据具体的需求去学习:

public class ArchiveTest extends BaseTest{

    private static Logger logger = Logger.getLogger(ArchiveTest.class);
@Autowired SecLevelService secLevelService;
//保管期限 @Test public void getStoPeriod(){ List<StoPeriodDao> periodList = stoPeriodService.getPeriodList(); System.out.println(periodList); } @Test public void getSecLevelList(){ List<SecLevelDao> secLevelDaoList = secLevelService.getSecLevelList(); logger.info(secLevelDaoList); }