我正在使用商业Java应用程序,它使用log4j写入日志文件。 我想将这些日志文件条目放入系统日志,我们有特定的filter设置来触发系统事件。
Log4j没有直接将输出传递给系统日志的方法。 我运行的两个方法涉及黑客“catalina.sh”(无论是否需要;还没有查看)脚本,另一个是编译一个自定义的Java类与log4j接口。
看起来像一个更简单的解决scheme可能是将log4j输出文件符号链接到一个FIFO或pipe道,将发送内容到syslogd侦听networking端口(或可能是netcat)。 有关如何连线的想法?
我build议你考虑使用logstash 。 它可以使用文本日志文件并将日志条目传送到各种其他系统,包括syslog 。
你可能能够使用netcat或类似的东西一起破解一些东西,但是使用像logstash这样的专用工具将会长远得多。
除了仅用作日志传输,logstash还可以在日志条目中添加其他数据(主机名等)(如果需要)。
最好的办法是设置本地系统日志服务器来读取这些文件并将它们发送到远程位置。 我已经广泛地使用syslog-ng,rsyslog和nxlog。 快速看看谷歌显示,syslogd应该能够做到这一点。