我有一个回答有关如何使用SocketAppender(我需要它来收集来自分布式系统日志),但我是新来的log4j,我不知道如何使用该示例代码。
也许我应该有这样的log4j-server.properties:
log4j.appender.SERVER=org.apache.log4j.net.SocketAppender
log4j.appender.SA.Port=4712
log4j.appender.SA.RemoteHost=loghost
log4j.appender.SA.ReconnectionDelay=10000
但我仍然不知道如何启动服务器(如何使用这一行)
org.apache.log4j.net.SimpleSocketServer 4712 log4j-server.properties
什么是最重要的:凡\我怎么能看到我的日志?
您可以使用运行服务器
java -classpath log4j.jar org.apache.log4j.net.SimpleSocketServer 4712 log4j-server.properties
所述SimpleSocketServer
接收记录在远程发送到指定的端口号的事件SocketAppender
,并记录它们,就像它们在本地生成 ,根据在提供的配置log4j-server.properties
。 它是由你来配置相应的控制台/文件/文件滚动附加目的地,并将它们连接到相关的记录器就像你,如果你是在原有工艺直接做记录,而不是通过网络套接字管道日志事件。 也就是说,如果你目前正在制作本地日志文件的东西,如:
log4j.rootLogger=DEBUG, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logfile.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d] [%t] [%m]%n
然后使发送方,你要改变它log4j.properties
简单地说,
log4j.rootLogger=DEBUG, server
log4j.appender.server=org.apache.log4j.net.SocketAppender
log4j.appender.server.Port=4712
log4j.appender.server.RemoteHost=loghost
log4j.appender.server.ReconnectionDelay=10000
和服务器端log4j-server.properties
包含以前在发送端的定义:
log4j.rootLogger=DEBUG, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logfile.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d] [%t] [%m]%n
特别要注意,有没有点指定的布局SocketAppender
在发送方-发生的事情在网络上是整个记录事件的对象,它的接收方是负责做布局。
要启动服务器简单类型下面的命令在命令提示符,服务器将启动并运行:
java的-classpath C:Users.m2repositorylog4jlog4j1.2.17log4j-1.2.17.jar org.apache.log4j.net.SimpleSocketServer 4712个log4j-server.properties
请不要忘记指定在您的系统log4j.jar的正确路径。