4

我想连接到远程服务器以使用 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>

我也尝试使用端口号 22 和 8080 连接 localhost

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

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

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

4

2 回答 2

5

您应该有一个正在运行的服务器,它监听给定的端口。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 和端口(不与标准端口冲突)。希望这会有所帮助。

于 2012-05-15T11:20:41.530 回答
3

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

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

于 2012-05-15T09:46:18.877 回答