1. 程式人生 > >log4j 配置和使用

log4j 配置和使用

web 信息保存 框架 jpg 指定格式 org 簡單介紹 rep prope

本篇簡單介紹基於Java的日誌記錄工具 log4j

log4j

Apache Log4j是一個基於Java的日誌記錄工具,是幾種Java日誌框架之一。最新版本為2.0

log4j

使用Maven下載:
(Maven使用可以參照以往的博客)


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

log4j配置

鄙人的使用時基於JFinal的。
新建property文件,log4j.property放在scr中。

log4j格式

  • 日誌級別
    
    //日誌級別
    log4j.rootLogger = appender1,appender2...

log4j的輸出級別一共有五級(其中級別最高的是FATAL FATAL>ERROR>WARN>INFO>DEBUG)

Tips:rootLogger 會對整個項目生效,如果想指定的包使用log4j.logger.packageName

  • 日誌輸出路徑
    //日誌輸出路徑(這裏為控制臺)
    log4j.appender.appender1=org.apache.log4j.ConsoleAppender;
  1. 1 ConsoleAppender(控制臺)
  2. 2 FileAppender(文件)
  3. 3 DailyRollingFileAppender(每天產生一個日誌文件)
  4. 4 RollingFileAppender(文件大小到達指定尺寸時產生一個新的文件)
  5. 5 WriteAppender(將日誌信息以流格式發送到任意指定的地方)
  6. 6 JDBCAppender(將日誌信息保存到數據庫中)
  • 日誌編碼
    //日誌輸出路徑(這裏為`UTF-8`)
    log4j.appender.appender1.encoding=UTF-8;
 
  • 日誌路徑
    //日誌路徑(這裏為`WebRoot`同級的`log`文件夾的`error.log`)
    log4j.appender.appender1.File=log/error.log;
  • 日誌布局格式
    //日誌布局格式(這裏為`PatternLayout`)
    log4j.appender.appender1.layout=org.apache.log4j.PatternLayout;
  • 日誌輸出格式
    //日誌輸出格式(這裏為`一種日期格式`)
    log4j.appender.appender1.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] %m%n
 
  1. 1 %c 輸出日誌信息所屬的類的全名
  2. 2 %d 輸出日誌時間點的日期或時間,默認格式為ISO8601,也可以在其後指定格式,比如:%d{yyy-M-dd HH:mm:ss }
  3. 3 %f 輸出日誌信息所屬的類的類名
  4. 4 %l 輸出日誌事件的發生位置,即輸出日誌信息的語句處於它所在的類的第幾行
  5. 5 %m 輸出代碼中指定的信息,如log(message)中的message
  6. 6 %n 輸出一個回車換行符,Windows平臺為“rn”,Unix平臺為“n”
  7. 7 %p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則為DEBUG,依此類推
  8. 8 %r 輸出自應用啟動到輸出該日誌信息所耗費的毫秒數
  9. 9 %t 輸出產生該日誌事件的線程名
  • 要追加的屬性
 
    log4j.appender.ServerDailyRollingFile.Append=true 
 

log4j.property

配置log4j.property

 
         log4j.rootLogger=E,I,console
        
        log4j.appender.E=org.apache.log4j.DailyRollingFileAppender
        log4j.appender.E.encoding=UTF-8
        log4j.appender.E.Append=true
        log4j.appender.E.Threshold=error
        log4j.appender.E.File=log/error.log
        log4j.appender.E.layout=org.apache.log4j.PatternLayout
        log4j.appender.E.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] %m%n
        
        log4j.appender.I=org.apache.log4j.DailyRollingFileAppender
        log4j.appender.I.encoding=UTF-8
        log4j.appender.I.Append=true
        log4j.appender.I.Threshold=info
        log4j.appender.I.File=log/info.log
        log4j.appender.I.layout=org.apache.log4j.PatternLayout
        log4j.appender.I.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] %m%n
        
        
        log4j.appender.console=org.apache.log4j.ConsoleAppender
        log4j.appender.console.Target=System.out
        log4j.appender.console.layout=org.apache.log4j.PatternLayout
        log4j.appender.console.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n

Java:比如在JFinal啟動之後輸出一條info信息。

 
     @Override
        public void afterJFinalStart() {
        
            Logger log=Logger.getLogger(Config.class);
            
            log.info("success");
            
        }

技術分享圖片

log4j 配置和使用