log4j.properties
属性文件
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