log 4 jは1時間ごとにログファイルを生成する
1951 ワード
log4j.properties
属性ファイル
印刷するオブジェクトクラスを処理する
ログは次のとおりです.
OK
属性ファイル
log4j.logger.visitlog=INFO, VisitFile
log4j.logger.pushlog=INFO, PushFile
#visitLog
log4j.appender.VisitFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.VisitFile.encoding=UTF-8
log4j.appender.VisitFile.File=${catalina.home}/logTraffic/visitlog
log4j.appender.VisitFile.DatePattern='.'yyyy-MM-dd_HH'.csv'
log4j.appender.VisitFile.layout=org.apache.log4j.PatternLayout
log4j.appender.VisitFile.layout.ConversionPattern=%m%n
#pushLog
log4j.appender.PushFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.PushFile.encoding=UTF-8
log4j.appender.PushFile.File=${catalina.home}/logTraffic/pushlog
log4j.appender.PushFile.DatePattern='.'yyyy-MM-dd_HH'.csv'
log4j.appender.PushFile.layout=org.apache.log4j.PatternLayout
log4j.appender.PushFile.layout.ConversionPattern=%m%n
印刷するオブジェクトクラスを処理する
public class RequestMessage {
private Logger logger = LoggerFactory.getLogger(this.getClass());
private String ip = ""; // ip
@Override
public String toString() {
return new ReflectionToStringBuilder(this, ToStringStyle.SIMPLE_STYLE).setExcludeFieldNames(new String[] {"logger"}).toString();
}
}
ログは次のとおりです.
public final class LogEventDispatcher implements EventHandler<LogEvent> {
private Logger visitLog = LoggerFactory.getLogger("com.qc.socket.scheduler.LogEventDispatcher.visitLog");
@Override
public void handle(LogEvent event) {
RequestMessage requestMessage = event.getRequestMessage();
switch (event.getType()) {
case C_FILE:
visitLog.info(requestMessage.toString());
break;
}
}
}
OK