我正在研究XMLSocketReceiver(因为我想运行Chainsaw),这使我进入SocketReceiver。
在SocketReceiver javadoc中,我读到
SocketReceiver在已配置的套接字上接收远程日志记录事件
并将其“发布”到LoggerRepository,就像生成事件一样
本地。此类旨在接收来自
SocketAppender类(或发送兼容事件的类)。
一旦事件被“发布”,它将由附加程序处理
当前在LoggerRespository中配置的。"posts" it to a LoggerRepository
如何工作?
最佳答案
考虑这种情况的一种方法是,Chainsaw实际上只能处理“本地”日志记录事件,而这样做的方法是使用自己的以编程方式注册的自定义附加程序。
就像FileAppender将“本地”日志记录事件发送到文件一样,Chainsaw的自定义附加程序将本地日志记录事件发送到UI中的选项卡。
接收器出现的地方是需要一种方法来获取这些“非本地”记录事件(对于VFSLogFilePatternReceiver,从日志文件获取;对于SocketReceiver,从网络获取),从而变为“本地”记录事件。可以由电锯的附加程序处理。
一旦接收器“接收”了日志事件,接收器“追加”了它们,这与调用log.info(“ my log message”)时的操作非常相似。这些(现在)本地日志记录事件由附加程序(包括电锯的附加程序)接收。
您可以尝试尝试做一个实验:将FileAppender定义添加到Chainsaw配置文件中。接收方收到的事件也将发送到FileAppender。
顺便说一句,我建议尝试使用Chainsaw的最新开发人员快照:http://people.apache.org/~sdeboy-大量的新功能。
希望对您有所帮助,
史考特