1

我正在研究 XMLSocketReceiver(bec. I want to run Chainsaw) ,这导致我使用 SocketReceiver。

在我阅读的SocketReceiver javadoc

SocketReceiver 在已配置的套接字上接收远程日志记录事件并将其“发布”到 LoggerRepository,就好像该事件是在本地生成的一样。此类旨在从 SocketAppender 类(或发送兼容事件的类)接收事件。

一旦事件被“发布”,它将由当前在 LoggerRespository 中配置的附加程序处理。

这是如何工作的"posts" it to a LoggerRepository

4

1 回答 1

1

考虑这一点的一种方法是,Chainsaw 实际上只能处理“本地”日志事件 - 它的方式是使用以编程方式注册的自己的自定义附加程序。

就像 FileAppender 将“本地”日志事件发送到文件一样,Chainsaw 的自定义附加程序将本地日志事件发送到 UI 中的选项卡。

接收器的作用在于需要有一种方法来获取这些“非本地”日志记录事件(在 VFSLogFilePatternReceiver 的情况下来自日志文件,在 SocketReceiver 的情况下来自网络)成为“本地”日志记录事件可以由 Chainsaw 的 appender 处理。

一旦接收器“接收到”日志事件,接收器就会“附加”它们,这与调用 log.info("my log message") 时的操作非常相似。这些(现在)本地日志事件由附加程序(包括 Chainsaw 的附加程序)接收。

您可以尝试一个实验:将 FileAppender 定义添加到 Chainsaw 配置文件。Receivers 接收到的事件也会发送到 FileAppender。

顺便说一句,我建议尝试最新的 Chainsaw 开发人员快照:http: //people.apache.org/~sdeboy - 大量新功能。

我希望这会有所帮助,

斯科特

于 2013-02-13T01:45:27.317 回答