一、介紹
Logger4j是Apache的一個開源項目,通過使用Log4j,我們可以控制日志資訊輸送的;我們也可以控制每一條日志的輸出格式;通過定義每一條日志資訊的級别,我們能夠更加細緻地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個配置檔案來靈活地進行配置,而不需要修改應用的代碼。
Log4j由三個重要的元件構成:
- 優先級(Loggers):從高到低有ERROR、WARN、 INFO、DEBUG,用來指定這條日志資訊的重要程度
- 輸出目的地(Appenders):指定了日志将列印到控制台還是檔案中
- 輸出格式(Layouts):控制了日志資訊的顯示内容
二、配置檔案(與Spring內建)
1、web.xml 設定log4j.xml檔案位置
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.xml</param-value>
</context-param>
2、log4j.xml配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[項目名] %-d{yyyy-MM-dd HH:mm:ss} %p [%t] %c{1}.%M(%L) | %m%n" />
</layout>
</appender>
<appender name="APPLOGFILE" class="org.apache.log4j.RollingFileAppender">
<param name="encoding" value="UTF-8" />
<param name="File" value="c:/logs/ynzjj_qyxypt.log" />
<param name="Append" value="true" />
<param name="MaxFileSize" value="1024KB" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[項目名] %-d{yyyy-MM-dd HH:mm:ss} %-5p %-15c{1}: %m%n" />
</layout>
</appender>
<!-- 指定logger的設定,預設additivity="true" 注意additivity="true"與appender-ref同時配置會導緻重複 -->
<logger name="com.chinacreator">
<level value="INFO" />
</logger>
<logger name="org.springframework">
<level value="INFO" />
</logger>
<logger name="org.apache.ibatis">
<level value="DEBUG" />
</logger>
<root>
<priority value="DEBUG" />
<appender-ref ref="CONSOLE" />
<!-- <appender-ref ref="APPLOGFILE" /> -->
</root>
</log4j:configuration>
3、Java使用
package com.mucfc;
import org.apache.log4j.Logger;
/**
*/
public class Test {
private static Logger logger = Logger.getLogger(Test.class);
/**
* @param args
*/
public static void main(String[] args) {
// System.out.println("This is println message.");
// 記錄debug級别的資訊
logger.debug("This is debug message.");
// 記錄info級别的資訊
logger.info("This is info message.");
// 記錄error級别的資訊
logger.error("This is error message.");
}
}
properties類型配置:https://blog.csdn.net/luohai859/article/details/52250807