log4j與log4j2

一 log4j

log4j是Apache的一個開源項目,用於輸出程序的運行情況。java

  • 相比於在程序內部添加System.out.println()作日誌輸出,log4j有以下優勢:
  • 能夠設定信息輸出的目的地,經常使用的有控制檯、文件等。
  • 根據日誌的嚴重程度,將日誌分爲6級,從高到低依次是:fatal、error、warn、info、debug、trace。
  • 能夠設定日誌的輸出格式,包含動態的信息。
  • 能夠開啓或者關閉信息輸出。

在java代碼獲取日誌對象並輸出:apache

Logger logger=Logger.getLogger(className.class);
logger.fatal(xxx);//輸出致命性信息
logger.error(xxx);//輸出錯誤信息
logger.warn(xxxx);//輸出警告信息
logger.info(xxx);//輸出通常性信息,好比變量的值
logger.debug(xxx);//輸出調試信息
logger.trace(xxx);//輸出值棧或者堆的信息

系統默認加載屬性文件,文件名與文件路徑均已肯定:log4j.properties,放在類目錄下。app

#to Console
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=[%-5p] [%d{yyyy-MM-dd HH:mm:ss}] [%l] %m%n

log4j.rootLogger=trace,console

二 log4j2

log4j2採用xml結構文檔來顯示日誌信息,相比於log4j,層次更加清晰。獲取輸出對象:spa

Logger logger=LogManager.getLogger(Class.class);

配置文件名爲log4j2.xml,防在src目錄下:debug

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
   <appenders>
      <Console name="console" target="SYSTEM_ERR">
          <PatternLayout pattern="[%-5p] [%d{yyyy-MM-dd HH:mm:ss} [%l] %m%n]" />
      </Console>
      <File name="file" fileName="d:/logs/log4j2.file.log" append="true">
          <PatternLayout pattern="[%-5p] [%d{yyyy-MM-dd HH:mm:ss} [%l] %m%n]" />
      </File>
   </appenders>
   <loggers>
      <root level="trace">
         <appender-ref ref="console" />
         <appender-ref ref="file" />
     </root>
   </loggers>
</configuration>
相關文章
相關標籤/搜索