log4j2的基本配置和實現
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的配置文件的放置路徑比較的隨意,只要自己建立的項目工程可以把配置信息讀取就可以了。