log4j2的基本配置和實現

jopen 10年前發布 | 160K 次閱讀 log4j2 日志處理 log4j

Log4j 2 contains next-generation Asynchronous Loggers based on the LMAX Disruptor library. In multi-threaded scenarios Asynchronous Loggers have 18 times higher throughput and orders of magnitude lower latency than Log4j 1.x and Logback. See Asynchronous Logging Performance for details. Otherwise, Log4j 2 performs faster than Log4j 1.x in critical areas and similarly to Logback under most circumstances. See Performance for more information.

這是官網給予log4j2的高度的評價,其性能是之前的log4j的18倍,其異步性的操作更是得到了優化,對于新技術的使用和開發是我們程序員必備的知識儲備,以下是自己折騰并從網絡上面收集的一點小的東西:

一、不多說:網站下載log4j的新的版本,我下載的是截止目前的最新版本2.0.2
二、下載完畢以后其中有好多的jar包,但是其中的好多都是為了兼容性等存在的,初步認識的時候,只需要關注的兩個jar包:

log4j-api-2.0.2.jar
    log4j-core-2.0.2.jar

三、把上述的兩個jar包導入我們自己的項目中,編寫我們的測試用例:

package com.fww.log;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class LogTest
{
    private static Logger log = LogManager.getLogger(LogTest.class.getName());
    public static void main(String[] args)
    {
        log.info("你好啊");
        log.debug("我是debug");
        log.error("錯了");
        log.trace("這是什么");
    }
}

四、運行程序就可以實現默認的配置信息下的log4j,但是在實際的開發中我們一定是需要自己按照項目的需求進行文件的配置操作的。以上的配置信息,只會使得error的信息輸出到默認的文件中。

五、手動的進行文件的配置操作:

<properties>
    <!-- 基本的文件的輸出信息的配置 -->
    <property name="LOG_HOME">log/test</property>
    <!-- 日志備份目錄 -->
    <property name="BACKUP_HOME">{LOG_HOME}/backup</property>
    <property name="STAT_NAME">stat</property>
    <property name="SERVER_NAME">global</property>
</properties>
<appenders>
    <!-- 定義控制臺輸出 -->
    <Console name="Console" target="SYSTEM_OUT" follow="true">
        <PatternLayout
            pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
    </Console>
    <!-- 程序員調試日志 -->
    <RollingRandomAccessFile name="DevLog"
        fileName="${LOG_HOME}/${SERVER_NAME}" filePattern="${LOG_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd-HH}.log">
        <PatternLayout
            pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
        <Policies>
            <TimeBasedTriggeringPolicy interval="1"
                modulate="true" />
        </Policies>
    </RollingRandomAccessFile>
</appenders>
<loggers>
    <!-- 3rdparty Loggers -->
    <logger name="org.springframework.core" level="info">
    </logger>
    <logger name="org.springframework.beans" level="info">
    </logger>
    <logger name="org.springframework.context" level="info">
    </logger>
    <logger name="org.springframework.web" level="info">
    </logger>
    <logger name="org.jboss.netty" level="warn">
    </logger>
    <logger name="org.apache.http" level="warn">
    </logger>
    <logger name="com.mchange.v2" level="warn">
    </logger>
    <!-- Root Logger -->
    <root level="DEBUG">
        <appender-ref ref="DevLog" />
        <appender-ref ref="Console" />
    </root>
</loggers>

(以上的配置信息搜集于網絡)

六、在其中配置信息中,我們可以手動的進行文件位置的配置。

七、其他的說明:

log4j2相對于之前的配置信息的操作,少了properties的文件的配置操作,現在的配置文件只有json或者是xml形式的文件配置。
log4j2的配置文件的放置路徑比較的隨意,只要自己建立的項目工程可以把配置信息讀取就可以了。

 

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!