如何接收系统日志消息并将其转换为字符串

Posted

技术标签:

【中文标题】如何接收系统日志消息并将其转换为字符串【英文标题】:How to receive syslog messages and convert them to string 【发布时间】:2017-02-23 05:04:49 【问题描述】:

首先我想接收syslog消息,第二个我想把syslog消息转换成字符串类型,请告诉我如何编写java代码。

以下代码只能在控制台输出,如何获取字符串类型的消息。

SyslogServerEventHandlerIF eventHandler = new PrintStreamSyslogServerEventHandler(System.out);
SyslogServerIF serverIF = SyslogServer.getInstance("udp");
SyslogServerConfigIF config = serverIF.getConfig();
config.setHost("192.168.1.114");
config.setPort(10000);
config.addEventHandler(eventHandler);
serverIF.initialize("udp",config);
serverIF.run();

【问题讨论】:

到目前为止你做了什么? @rkosegi 以上代码只能在控制台输出,如何获取字符串类型的message 这段代码似乎生成了系统日志服务器。你想接收消息。困惑。 @rkosegi 这段代码是接收消息然后打印到控制台,引入syslog.jar包。 @rkosegi 因为要解析syslog消息,所以想先得到一个String类型的消息,然后用正则表达式匹配 【参考方案1】:

您可以使用 Apache-camel 通过 UDP 接收消息,然后使用 syslog 数据格式解组。它同时支持 RFC3164 和 RFC5424。 参考:http://camel.apache.org/syslog.html

【讨论】:

以上是关于如何接收系统日志消息并将其转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

PHPUnit 接收系统日志消息?

询问流利的系统日志聚合器

水槽系统日志代理没有选择消息并将其放入 HDFS

如何在 Python 3.6 程序中接收系统日志消息?

如何获取日志字符串的最后一部分并将其解释为 json?

如何使用 Objective-C 在 IOS 中读取和存储系统日志消息