我需要实现基于请求的日志记录。 基于header - log-level-header。
在我的代码中,我正在使用JAX-RS并实现了ContainerRequestFilter。
@Override
public void filter(final ContainerRequestContext context) throws IOException {
String log_level = context.getHeaderString("log-level-header");
//translate to actual log level
Logger root = (Logger)LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
root.setLevel(logLevelToSet);
}
我正在使用Logback和slf4j API。 问题是我将日志级别设置为RootLogger,这是一个单例,因此最终修改了跨应用程序的日志级别。
相反,我打算更改特定线程的日志级别(RequestBasedLogging)。这是可以实现的吗?