Java使用Log4記錄日誌
阿新 • • 發佈:2017-05-13
.gz string erro error console 操作 config 信息 pat
我們在系統使用中,為了方便查找問題,因此需要記錄操作的日誌,而目前比較成熟穩定的程序日誌記錄方式就是Log4,本人也是菜鳥,然後再學習研究中就記錄一下使用方式,以方便今後查閱,同時本文章參考了博客園:http://www.cnblogs.com/zhangpengshou/p/5128050.html 的文章,在此表示感謝。
Log4有1.x版本和2.x版本,兩個版本的使用方式有很大區別,為了方便在此使用2.x版本。
代碼很簡單,首先要配置xml,在類的同級創建log4j2.xml如下:
<?xml version="1.0" encoding="UTF-8"?> <configurationstatus="error"> <!--先定義所有的appender--> <appenders> <!--這個輸出控制臺的配置--> <Console name="Console" target="SYSTEM_OUT"> <!--這個是輸出日誌的格式--> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> </Console> <!--文件會打印出所有信息,這個log每次運行程序會自動清空,由append屬性決定,適合臨時測試用--> <File name="Error" fileName="E:/logs/error.log" append="false"> <!--控制臺只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch)--> <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="記錄時間:%date%n線程ID:[%thread] %n日誌級別:%-5level%n記錄位置:%location%n消息描述:%property{Message}%n異常:%exception%n消息:%message%newline%n------------------------------------------%n"/> </File> <!--這個會打印出所有的信息,每次大小超過size,則這size大小的日誌會自動存入按年份-月份建立的文件夾下面並進行壓縮,作為存檔--> <RollingFile name="RollingFile" fileName="E:/logs/history.log" filePattern="log/$${date:yyyy-MM}/history-%d{MM-dd-yyyy}-%i.log.gz"> <PatternLayout pattern="記錄時間:%date%n線程ID:[%thread] %n日誌級別:%-5level%n記錄位置:%location%n消息描述:%property{Message}%n異常:%exception%n消息:%message%newline%n------------------------------------------%n"/> <SizeBasedTriggeringPolicy size="50MB"/> </RollingFile> </appenders> <!--然後定義logger,只有定義了logger並引入的appender,appender才會生效--> <loggers> <!--建立一個默認的root的logger--> <root level="trace"> <appender-ref ref="Error"/> <appender-ref ref="RollingFile"/> <appender-ref ref="Console"/> </root> </loggers> </configuration>
代碼裏面都有註釋,在此不做詳細解說了,關於Log4的其它配置可百度一下。Java代碼使用方式如下:
import java.io.File; import java.util.List; import org.dom4j.*; import org.dom4j.io.SAXReader; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class Hello { private static Logger logger = LogManager.getLogger(Hello.class); public static void main(String[] args) { logger.debug("測試"); logger.error("錯誤消息"); } }
鳴謝:http://www.cnblogs.com/zhangpengshou/p/5128050.html
Java使用Log4記錄日誌