1. 程式人生 > 實用技巧 >如何在Maven構建的Java專案中使用log4j

如何在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); }