动态更改在 tomcat 上运行的 Web 应用程序的 Logback 级别

idi*_*ous 1 java tomcat logback slf4j

我在 Tomcat 7 上运行的 java Web 应用程序的资源文件夹中有一个。logback.xml有没有办法在应用程序运行时动态更改应用程序某些类的调试级别?

标准做法是从 CLI 运行一个普通的 java jar,只需logback.xml使用 vim 进行编辑,一段时间后日志就会更新。这对于 tomcat 是否可行,因为我尝试过,但 id 似乎不起作用。

还有更好的办法吗?

Gar*_*rry 5

您可以尝试像这样是您的应用程序来更改级别:

Logger root = (Logger)LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
root.setLevel(Level.INFO);
Run Code Online (Sandbox Code Playgroud)

用于将包名称指定为 logger-name。

LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory();
Logger myPackageLogger = loggerContext.getLogger("com.mypackage");
myPackageLogger.setLevel(Level.INFO);
Run Code Online (Sandbox Code Playgroud)