我不确定Socket Appender是如何工作的.我知道记录事件被发送到特定端口.然后我们可以在控制台上打印日志或将其放入文件中.
我的问题更多的是关于日志的发送方式.有没有例如一个队列?是同步还是异步?可以使用它减慢我的程序?
我在这里找到了一些信息,但对我来说并不清楚.
Raj*_*ani 12
从SocketAppender文档
日志TCP实现自动缓冲日志记录事件.这意味着如果到服务器的链接速度慢但仍然快于客户端生成(日志)事件的速率,则客户端不会受到慢速网络连接的影响.但是,如果网络连接速度低于事件生成速率,则客户端只能以网络速率进行.特别是,如果到服务器的网络链接已关闭,则将阻止客户端.
另一方面,如果网络链接已启动,但服务器已关闭,则在发出日志请求时不会阻止客户端,但由于服务器不可用,日志事件将丢失.
由于appender使用TCP协议,我会说日志事件是"同步的".
基本上,appender使用TCP将第一个日志事件发送到服务器.但是,如果网络延迟太高以至于在生成第二个事件时仍未发送消息,则第二个日志事件将不得不等待(从而阻塞),直到第一个事件被消耗.所以是的,如果应用程序生成的日志事件比网络传递的速度快,则会降低应用程序的速度.
正如@Akhil和@Nikita所提到的,如果您不希望应用程序的性能受到网络延迟的影响,那么JMSAppender或AsyncAppender将是更好的选择.
| 归档时间: |
|
| 查看次数: |
6217 次 |
| 最近记录: |