簡體   English   中英

在通話期間更改Log4j閾值

[英]Change Log4j threshold for the duration of a call

我有一個Log4j,其中包含多個記錄器,在多線程應用程序中使用的附加器。 在一種情況下,我將嘗試連接到遠程服務。 如果連接失敗,我將再次嘗試。

我只希望log4j首次使用其原始配置。 但是,對於以后的所有其他嘗試,我想使用一個不太冗長的配置。 這不應更改可能在相同對象上運行的其他線程的日志記錄配置。 請注意,我無法事先知道在呼叫中使用了哪些記錄器來連接到遠程服務。

因此,是否有一種方法可以在一個調用期間更改全局日志記錄,而又不更改其他並發線程的行為?

查看API的這一部分:

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

您可以調用setLevel(Level lev)方法並進行一些更改。 但是,我不能100%地確定您不會影響其他線程,因為通常Logger是基於類的。

我認為您必須為每個用戶會話獲取一個Logger對象,但是我不確定100%是否會導致堆問題。

也許控制代碼的輸出(例如,如果是第一次嘗試,則僅向日志發送一些消息)。

問候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM