Java Syslog 仅使用 logback 记录到本地机器
Posted
技术标签:
【中文标题】Java Syslog 仅使用 logback 记录到本地机器【英文标题】:Java Syslog logging to local machine only with logback 【发布时间】:2012-07-10 11:27:42 【问题描述】:我需要仅将事件记录到本地主机上的syslog
。我的第一次试用是使用logback
SyslogAppender
,但看起来它是通过UDP 写入日志的。问题是syslog
守护程序需要配置为访问远程日志记录,我不能保证所有部署目标都可以。有没有办法从JAVA“直接”登录到syslog
(/bin/logger
会这样做)? (我的意思是,不需要通过 UDP 或 TCP)
【问题讨论】:
【参考方案1】:我猜你可以直接调用 /bin/logger,但是你需要编写一个新的适配器来这样做。 “最简单”的事情可能是对当前适配器进行子类化以获取所有脚手架,并且只覆盖发送消息的 sn-p。
您可能想要做一些实验,看看您是否可以编写一个简单的 Java 程序调用 /bin/logger,看看这是否可行。
【讨论】:
想到了,但这会将我“绑定”到 /bin/logger,这是我想避免的。【参考方案2】:刚好遇到类似问题,发现SysLog4J。不幸的是,它自 2011 年以来一直没有得到积极开发。
存在一些替代包装 - 这似乎很新鲜:https://github.com/Graylog2/syslog4j-graylog2
编辑:更好的答案已经是以下问题的一部分:Using Syslog's unix socket with Log4J2 :)
【讨论】:
以上是关于Java Syslog 仅使用 logback 记录到本地机器的主要内容,如果未能解决你的问题,请参考以下文章
符合 RFC 5424 的 Logback TCP 系统日志