當我使用logback作爲日誌框架時,我在運行時添加記錄器配置以進行調試。例如設置「org.springframework」爲調試級別。從配置中刪除記錄器
找到我需要的數據後,我想在不重新啓動應用程序的情況下刪除此配置。
我該怎麼做?
當我使用logback作爲日誌框架時,我在運行時添加記錄器配置以進行調試。例如設置「org.springframework」爲調試級別。從配置中刪除記錄器
找到我需要的數據後,我想在不重新啓動應用程序的情況下刪除此配置。
我該怎麼做?
根據您想要如何修改日誌級別,您有兩個選項。
第一種選擇 - 使用logback.xml
的logback XML提供了一個選項,以週期性地掃描的配置。通過設置,您要求記錄器框架定期更新其內存設置以與XML配置同步。如果要啓用調試模式,XML配置看起來如下:
<configuration scan="true" scanPeriod="30 seconds">
<!-- Appender configurations here -->
<logger name="org.springframework" level="debug" additivity="false">
<appender-ref ref="YOUR_APPENDER_NAME"/>
</logger>
<!-- Other logger configurations (including root) go here -->
</configuration>
您完成任務後,你可以刪除記錄條目或級別設置爲錯誤停止記錄該軟件包。
第二個方案 - 在內存
如果你不想碰你logback.xml,但不知何故,在運行時處理它(比方說,使用你的應用程序的一些的REST API),你可能會得到特定的記錄器實例並將其級別設置爲DEBUG。完成活動後,您可以將級別設置爲「空」,以便級別從父級繼承。示例代碼如下:
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import org.slf4j.LoggerFactory;
.....
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
Logger logger = context.getLogger("org.springframework");
logger.setLevel((Level.toLevel("DEBUG"));
// Do your task
logger.setLevel(null); // When we do this, level will be inherited from parent.
logback有一個選項,允許定期重新掃描配置文件以查找更改。
<configuration scan="true">
...
</configuration>
是的我知道我可以編輯配置文件。有沒有辦法從代碼做到這一點? – igreen
是的。 logback文檔在描述如何執行此操作時非常有用。 –
我在文檔中找不到這個...可以分享鏈接嗎? – igreen