XMLSocketReceiver和SocketReceiver如何工作?

时间:2013-02-12 16:36:58

标签: java log4j

我正在研究XMLSocketReceiver(因为我想运行Chainsaw),这导致我进入SocketReceiver。

SocketReceiver javadoc我读过

  

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

     

一旦事件被“发布”,它将由appender处理   目前在LoggerRespository中配置。

这对"posts" it to a LoggerRepository有何影响?

1 个答案:

答案 0 :(得分:1)

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

就像FileAppender将'本地'日志事件发送到文件一样,Chainsaw的自定义appender将本地日志记录事件发送到UI中的选项卡。

接收者进入的地方是需要有一种方法来获取这些“非本地”记录事件(在VFSLogFilePatternReceiver的情况下从日志文件,在SocketReceiver的情况下从网络)成为'本地'记录可由Chainsaw'处理器处理的事件。

接收方“接收”记录事件后,接收方“附加”它们,与您调用log.info(“我的日志消息”)时的方式非常相似。这些(现在)本地日志记录事件由appender(包括Chainsaw的appender)接收。

您可以尝试查看此实验:将FileAppender定义添加到Chainsaw配置文件中。 Receiver收到的事件也将发送到FileAppender。

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

我希望有所帮助,

斯科特