天天看點

Logger4j一、介紹二、配置檔案(與Spring內建)

一、介紹

    Logger4j是Apache的一個開源項目,通過使用Log4j,我們可以控制日志資訊輸送的;我們也可以控制每一條日志的輸出格式;通過定義每一條日志資訊的級别,我們能夠更加細緻地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個配置檔案來靈活地進行配置,而不需要修改應用的代碼。

Log4j由三個重要的元件構成:

  1. 優先級(Loggers):從高到低有ERROR、WARN、 INFO、DEBUG,用來指定這條日志資訊的重要程度
  2. 輸出目的地(Appenders):指定了日志将列印到控制台還是檔案中
  3. 輸出格式(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

繼續閱讀