1. 程式人生 > >Java使用Log4記錄日誌

Java使用Log4記錄日誌

.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"?>

<configuration 
status="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記錄日誌