log4j 不一樣class輸出到不一樣文件

    前兩天須要完成標題所說的一個功能,網上也有不少解決辦法。我把我本身的一些想法寫下來供之後參考:java

   

import org.apache.log4j.Logger;


/**
 * 
 * @author ilxlf
 *
 */
public class  SpecialServiceLog{
	private static Logger logger = Logger.getLogger("SpecialServerLog");
	private static SpecialServiceLog log = new SpecialServiceLog();
	
	private SpecialServiceLog() {
		
	}
	
	public static synchronized SpecialServiceLog getInstance() {
		return log;
	}
	
	public void debug(String message) {
		logger.debug(message);
	}
	
	public void info(String message) {
		logger.info(message);
	}
	
	public void error(String message) {
		logger.error(message);
	}
	
	public void warn(String message) {
		logger.warn(message);
	}
}

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>

    <appender name="specialLog" class="org.apache.log4j.rolling.RollingFileAppender">
        <rollingPolicy class="org.apache.log4j.rolling.FixedWindowRollingPolicy">
            <param name="activeFileName" value="slog.log"/>
            <param name="fileNamePattern" value="slog.%i.log"/>
          <param name="minIndex" value="1"/>        
          <param name="maxIndex" value="10" />
        </rollingPolicy>
        <triggeringPolicy class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy">
            <param name="maxFileSize" value="1000000"/>     
        </triggeringPolicy>        
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy MMM dd HH:mm:ss} :  %m%n" />
        </layout>
    </appender>
    
    <logger name="SpecialServiceLog" additivity="false">
        <level value="info" />
        <appender-ref ref="specialLog" />
    </logger>

</log4j:configuration>

    這樣使用 SpecialServiceLog去記log,產生的log就會寫在slog.log裏面     
相關文章
相關標籤/搜索