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

Dynamically change Logback level for web app running on tomcat

我的 java Web 应用程序的资源文件夹中有一个 logback.xml,它是 Tomcat 上的 运行 7. 有没有办法更改调试级别一些 class 的应用程序是动态的,因为应用程序是 运行?

标准的做法是从 CLI 中使用普通的 java jar 运行 只是编辑 logback.xml 说 vim 并在一段时间后日志已更新。 tomcat 这可能吗,因为我试过了,但 id 似乎不起作用。

有没有更好的方法?

您可以这样尝试更改级别:

Logger root = (Logger)LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
root.setLevel(Level.INFO);

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

LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory();
Logger myPackageLogger = loggerContext.getLogger("com.mypackage");
myPackageLogger.setLevel(Level.INFO);