我想知道是否可以使用log4j创建一个仅在发生定义的日志级别时才记录的日志堆栈。例如:我们有非常大的日志文件,并且必须记录很多日志以了解用户如何解决此错误。但是我们仅在发生错误时才需要此信息,而不是每个用户都需要。
有没有一种方法可以解决log4j中的这个问题而无需自己动手?
不幸的是,没有现成的机制可以让您在log4j中创建一个日志堆栈,并且仅当您决定稍后再进行记录(如果发生错误)时,才将其记录下来。
但是,您可以通过Filter
s实现这种功能(是的,可以自己活跃起来)。过滤器可能会在其缓冲区中堆积消息(它必须是线程本地的,或者使用其他技术将堆栈链接到上下文),直到它检测到必须清除该堆栈并启动一个新的消息为止(通过一些标记指示新用户请求),或者发生错误并且必须将堆栈刷新到日志。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句