gpt4 book ai didi

java - Jersey 服务器日志记录/w Logback

转载 作者:行者123 更新时间:2023-11-28 22:06:45 25 4
gpt4 key购买 nike

我将如何让 Jersey LoggingFilter 与 logback 一起工作?我看到了这个帖子:

How to get jersey logs at server?

但不幸的是,它依赖于 java.util.Logger。我不是很精通 web.xml 配置,所以我不知道如何提供 init-param 不同的记录器。

请注意,我使用 Spring 3 进行依赖注入(inject),但我正在使用以下代码为每个类创建记录器:

Logger logger = LoggerFactory.getLogger(MyClass.class);

希望这是足够的信息。如果没有,请告诉我。

我的网络容器是 Tomcat 7.0.12。

最佳答案

我尝试将 Jersey-Spring4 与 logback 一起使用,但无法通过 LoggingFeature 重定向访问日志到我的 logback-logger。logback-logger 配置为 <logger name="org.glassfish.jersey" level="INFO"/>我认为这应该可以解决问题。

在得知 Jersey 正在使用 JUL 后,我伤心了几分钟,并继续使用 org.slf4j:jul-to-slf4j .为了让它工作,我必须

private void registerLogback(final ServletContext servletContext) {
servletContext.addListener(new LogbackConfigListener());

//this is only necessary if you externalise logback.xml from resources
try { LogbackConfigurer.initLogging(servletContext.getRealPath("/WEB-INF/logback.xml")); }
catch (FileNotFoundException | JoranException e) { e.printStackTrace(); }

LogManager.getLogManager().reset();
SLF4JBridgeHandler.removeHandlersForRootLogger();
SLF4JBridgeHandler.install();
}

在我的 WebApplicationInitializer.onStartup(ServletContext servletContext) .

我的 ResourceConfig看起来像

register(new LoggingFeature(createLogger(), Level.ALL, LoggingFeature.DEFAULT_VERBOSITY, 0)); 

private Logger createLogger() {
final ConsoleHandler consoleHandler = new ConsoleHandler();
consoleHandler.setLevel(Level.ALL);

final Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
logger.setLevel(Level.ALL);
logger.addHandler(consoleHandler);

return logger;
}

什么记录了对控制台的访问。删除 ConsoleHandler可悲的是,日志并没有最终被记录到 logback-logger,只是被吞噬了。 但是控制台上的红色 日志语句提示我这可能是STDERR。 , 尽管他们是 INFO .

最后LoggingFeature not logging correctly based on configuration on constructor给了我丢失的部分。

我的期末作业 ResourceConfig最终成为

register(new LoggingFeature(Logger.getLogger(LoggingFeature.DEFAULT_LOGGER_NAME), Level.INFO, LoggingFeature.DEFAULT_VERBOSITY, 0));

在哪里LoggingFeature.DEFAULT_LOGGER_NAMELevel.INFO似乎是关键部分。

最后我也不知道到底哪里出了问题,但这是我猜测的结果,而且是有效的。如果这对任何人有帮助,我很高兴。

关于java - Jersey 服务器日志记录/w Logback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13240520/

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