log 4 j異なるclassは異なるファイルに出力される

2233 ワード

先日はタイトルの1つの機能を完成させる必要があり、ネット上でも多くの解決策があります.私は自分の考えを書いて後で参考にします.
   
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はロゴを記入し、生成したロゴはslogに書きます.ロゴの中