使用Log4J连接远程服务器以进行日志记录

时间:2012-05-15 07:41:35

标签: java log4j

我想连接到远程服务器以使用Log4J Socket Appender编写我的日志文件 我的log.properties文件如下所示

log4j.rootLogger=DEBUG, BLAH

# to connect to the remote server
log4j.appender.BLAH=org.apache.log4j.net.SocketAppender

# set set that layout to be SimpleLayout
log4j.appender.BLAH.layout=org.apache.log4j.SimpleLayout

#log4j.appender.BLAH.File= admin.log

log4j.appender.BLAH.Port= xx
log4j.appender.BLAH.RemoteHost= <remoteIp>

我尝试将localhost连接到端口号22和8080

我在连接的某个地方犯了一个错误。 我收到以下错误

log4j:ERROR Could not connect to remote log4j server at [localhost]. We will try again later.

或 给我任何建议在远程服务器机器上写日志文件。

2 个答案:

答案 0 :(得分:3)

端口22和8080通常分别由SSH和HTTP使用。期望SocketAppender使用自己的基于TCP的协议与SocketNode对话。所以你需要在你选择的不同端口上启动一个。

请注意,当您尝试登录到远程服务器时,您需要在防火墙上打开该端口。

答案 1 :(得分:3)

您应该运行一个侦听给定端口的服务器。 log4j应该连接到此服务器以进行日志记录。

在命令提示符下键入以下内容以启动侦听器

Java org.apache.log4j.net.SimpleSocketServer 4712 PATH_TO_THE_FILE \ log4jServer.properties

例如

  

java org.apache.log4j.net.SimpleSocketServer 4712 C:\ log4j-server.properties

log4j-server.properties可能包含这样的内容。

> log4j-server.properties will contain normal configuration of log4j.
> log4j.rootLogger=debug, stdout
> log4j.appender.stdout=org.apache.log4j.ConsoleAppender
> log4j.appender.stdout.Target=System.out
> log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
> log4j.appender.stdout.layout.ConversionPattern=%t %-5p %c{2} - %m%n

在客户端,您的log4j配置将如下所示

log4j.rootLogger=DEBUG, BLAH  
# to connect to the remote server 
log4j.appender.BLAH=org.apache.log4j.net.SocketAppender  
# set set that layout to be SimpleLayout 
log4j.appender.BLAH.layout=org.apache.log4j.SimpleLayout  
#log4j.appender.BLAH.File= admin.log  
log4j.appender.BLAH.Port= 4712 
log4j.appender.BLAH.RemoteHost=10.225.226.58

根据您的配置更换IP和端口(不冲突标准端口)。 希望这会有所帮助。