1. 服务端
配置文件log4j-server.properties, 其中的[%X{ip}]是自定义的客户端ip,稍后在客户端那给出输入的方法
#socket的日志 log4j.logger.org.apache.log4j=ERROR,file #下面这个开头必须和客户端一致 log4j.logger.com.test=DEBUG,testA log4j.logger.com.product=DEBUG,productA #Define how the socket server should store the log events log4j.appender.file=org.apache.log4j.DailyRollingFileAppender log4j.appender.file.File=logs/socket.log log4j.appender.file.encoding=UTF-8 log4j.appender.file.Append=true log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=[%X{ip}][%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%C : %M : %L]:%m%n log4j.appender.testA=org.apache.log4j.DailyRollingFileAppender log4j.appender.testA.File=logs/testA.log log4j.appender.testA.encoding=UTF-8 log4j.appender.testA.Append=true log4j.appender.testA.layout=org.apache.log4j.PatternLayout log4j.appender.testA.layout.ConversionPattern=[%X{ip}][%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%C : %M : %L]:%m%n log4j.appender.productA=org.apache.log4j.DailyRollingFileAppender log4j.appender.productA.File=logs/productA.log log4j.appender.productA.encoding=UTF-8 log4j.appender.productA.Append=true log4j.appender.productA.layout=org.apache.log4j.PatternLayout log4j.appender.productA.layout.ConversionPattern=[%X{ip}][%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%C : %M : %L]:%m%n
启动- 端口9898
java -classpath log4j-1.2.16.jar org.apache.log4j.net.SimpleSocketServer 9898 log4j-server.properties
后台启动
nohup java -classpath log4j-1.2.16.jar org.apache.log4j.net.SimpleSocketServer 9898 log4j-server.properties 2>&1 &
2.客户端
配置log4j.properties
#可以多个append,本地加远程 log4j.logger.com.test=DEBUG,localTestA,socket log4j.logger.com.prodcut=DEBUG,localProductA,socket log4j.appender.socket=org.apache.log4j.net.SocketAppender log4j.appender.socket.Port=9898 log4j.appender.socket.RemoteHost=192.168.0.1 log4j.appender.socket.ReconnectionDelay=10000
代码,在应用启动的地方,写入本机ip参数
try { MDC.put("ip", InetAddress.getLocalHost().getHostAddress().toString()); } catch (UnknownHostException e) { log.error("获取本机ip失败"); }
3. 完成,愉快的查看日志吧