我正在使用一款商业 Java 应用程序,它使用 log4j 编写日志文件。我想将这些日志文件条目放入 Syslog 中,我们在 Syslog 中设置了特定的过滤器以触发系统事件。
Log4j 没有直接将其输出传递到 syslog 的方法。我遇到的两种方法涉及破解“catalina.sh”(无论其包含什么;还没有查看)脚本,另一种方法是编译自定义 Java 类以与 log4j 交互。
似乎更简单的解决方案可能是将 log4j 输出文件符号链接到 FIFO 或管道,然后将其内容发送到监听网络端口的 syslogd(或可能是 netcat)。关于如何连接它,您有什么想法吗?
答案1
答案2
最好的办法是设置本地 syslog 服务器来读取文件并将它们发送到远程位置。我已广泛使用 syslog-ng、rsyslog 和 nxlog 来实现此目的。快速浏览一下 google 就会发现 syslogd 应该也能做到这一点。