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 记录到本地机器的主要内容,如果未能解决你的问题,请参考以下文章

Logback 只会将消息记录到 syslog 一次

Logback 的 Syslog Appender

符合 RFC 5424 的 Logback TCP 系统日志

我的 logback syslog appender 有啥问题?

是否可以以编程方式设置 logback 配置?

Syslog 处理程序仅限于 Windows 上的 UDP