调用持续时间的java更改Log4j阈值
我有一个带有多个记录器的log4j,多线程应用程序中使用的appender。在一个场景中,我将尝试连接到远程服务。如果连接失败,我将重复尝试
我只希望log4j第一次使用它的原始配置。但是,对于以后的每一次尝试,我都希望使用一个不太详细的配置。这不应更改可能在相同对象上运行的其他线程的日志记录配置。请注意,我无法预先知道调用中使用了哪些记录器来连接远程服务
那么,有没有一种方法可以在一次调用期间全局更改日志记录,而不更改其他并发线程的行为
你可以在下面搜索框中键入要查询的问题!
我有一个带有多个记录器的log4j,多线程应用程序中使用的appender。在一个场景中,我将尝试连接到远程服务。如果连接失败,我将重复尝试
我只希望log4j第一次使用它的原始配置。但是,对于以后的每一次尝试,我都希望使用一个不太详细的配置。这不应更改可能在相同对象上运行的其他线程的日志记录配置。请注意,我无法预先知道调用中使用了哪些记录器来连接远程服务
那么,有没有一种方法可以在一次调用期间全局更改日志记录,而不更改其他并发线程的行为
# 1 楼答案
请看API的这一部分:
http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Logger.html
您可以调用setLevel(Level-lev)方法并进行一些更改。但是,我不能100%确定您不会影响其他线程,因为记录器通常基于类
我认为您必须为每个用户会话获取一个Logger对象,但我不能100%确定它是否会导致堆问题
可能控制代码的输出(例如,仅当第一次尝试时才向日志发送一些消息)
问候