我正在研究XMLSocketReceiver(因为我想运行Chainsaw),这导致我进入SocketReceiver。
SocketReceiver在已配置的套接字上接收远程日志记录事件 并将其“发布”到LoggerRepository,就像生成事件一样 本地。这个类旨在接收来自的事件 SocketAppender类(或发送兼容事件的类)。
一旦事件被“发布”,它将由appender处理 目前在LoggerRespository中配置。
这对"posts" it to a LoggerRepository
有何影响?
答案 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 - 大量新功能。
我希望有所帮助,
斯科特