通过2.8版之后的套接字通过log4j2进行远程日志记录的正确方法是什么?

时间:2020-06-05 17:13:21

标签: log4j2

我在单独的EC2上运行许多进程,我想将所有日志发送到在我们办公室中运行的集中式服务器。 (我正在使用路由追加程序将其写入单独的日志)当前接受的通过Socket追加程序发送日志并使用TcpSocketServer接收日志的方式是什么?

当前,我正在使用2.8.2发行版中的TcpSocketServer,而我正在EC2上使用2.13。 EC2客户端的配置如下

<Socket name="socket" host="IP.GOES.HERE" port="7777" connectTimeoutMillis="3000" reconnectionDelayMillis="3000">
    <SerializedLayout />
</Socket>

它有效,但是我有几个担忧:

  1. 重新启动TcpSocketServer时,客户端不会重新连接。
  2. 当客户端无法连接到服务器时,它将阻止客户端。我需要在套接字周围包裹一个异步附加器吗?
  3. 有安全孔吗?为什么删除了TcpSocketServer却保留了Socket附加程序?

1 个答案:

答案 0 :(得分:0)

TcpSocketServer应该是一个示例应用程序。我不建议在生产中直接使用它。如果您不阻止任意连接和/或使用SerializedLayout,还会带来安全风险。杰森将是一个更好的选择。

SocketAppender将重新连接。最好的使用方式是通过为主机配置DNS名称,使主机返回多个IP地址。如果连接断开,套接字追加程序将重新连接到其中任何一个。

您可能希望查看Logging in the Cloud以获得其他建议。

相关问题