有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

调用持续时间的java更改Log4j阈值

我有一个带有多个记录器的log4j,多线程应用程序中使用的appender。在一个场景中,我将尝试连接到远程服务。如果连接失败,我将重复尝试

我只希望log4j第一次使用它的原始配置。但是,对于以后的每一次尝试,我都希望使用一个不太详细的配置。这不应更改可能在相同对象上运行的其他线程的日志记录配置。请注意,我无法预先知道调用中使用了哪些记录器来连接远程服务

那么,有没有一种方法可以在一次调用期间全局更改日志记录,而不更改其他并发线程的行为


共 (1) 个答案

  1. # 1 楼答案

    请看API的这一部分:

    http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Logger.html

    您可以调用setLevel(Level-lev)方法并进行一些更改。但是,我不能100%确定您不会影响其他线程,因为记录器通常基于类

    我认为您必须为每个用户会话获取一个Logger对象,但我不能100%确定它是否会导致堆问题

    可能控制代码的输出(例如,仅当第一次尝试时才向日志发送一些消息)

    问候