我有一个场景,我们正在记录到远程logstash 主机。现在根据 log4j 文档,对于 SocketAppender,如果远程主机关闭,日志事件将被简单地删除。我想自定义套接字附加程序,以便在本地日志文件中捕获那些丢弃的日志。这样就不会遗漏任何内容。
我尝试过,但没成功。 socketappender中有2个方法connect和append(event)
但在我看来,只有连接成功时才会调用追加。虽然 connect 方法没有返回任何内容
那么,如果远程主机关闭,我如何在本地文件中捕获该事件
引用号:https://logging.apache.org/log4j/1.2/xref/org/apache/log4j/net/SocketAppender.html
我还尝试了 Fallbackerror 处理程序。但它只记录一次,然后不再记录。所以基本上它似乎不起作用
最佳答案
写入本地日志文件并使用filebeat将日志发送到logstash。当logstash不可用时,日志将在本地假脱机(“免费”分布式缓存)。
如果您的本地日志文件轮换时,logstash 仍然处于关闭状态,则存在一种特殊情况...
关于java - Log4j:socketappender - 当远程主机关闭时如何捕获本地文件中的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40283377/