gpt4 book ai didi

java - Log(ger) 变量声明

转载 作者:行者123 更新时间:2023-12-02 09:08:41 25 4
gpt4 key购买 nike

在大多数情况下,我看到声明如下的 Log 实例:

public static final Log LOG = LogFactory.getLog(MyClass.class);

我认为这意味着日志配置是在MyClass加载时加载的,因此一直固定不变,直到MyClass是重新加载或 JVM 重新启动?

那么,如果这个假设是正确的,那么确保日志配置的更改在发生时(或发生后不久)被拾取的最佳方法是什么?

最佳答案

我假设您正在使用 LogFactory 类中的 commons-logging ?据我所知,常用的日志记录实现(Log4J、java.util.logging)都不允许您在正在运行的应用程序中重新加载配置文件(无论实际的 Logger 被声明为静态 变量)。 (编辑:下面彼得的回答证明我在 Log4J 的情况下是错误的)

但是,它们确实允许动态更改日志记录级别(例如通过MBean)。这些级别更改将由任何 Logger(包括声明为静态变量的那些)获取。如果您使用 java.util.logging,您可以在 JConsole 中免费获得 MBean

这只是您关心的级别的变化,还是您希望动态提供完全不同的日志配置(例如文件、记录器定义)?

关于java - Log(ger) 变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1366734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com