是否可以覆盖Glassfish v3的默认日志记录?

时间:2010-03-10 21:50:22

标签: java glassfish glassfish-3 logback slf4j

this question相关。看来Glassfish正在将slf4j导出到我的应用程序中并覆盖我的日志记录解决方案。我可以覆盖Glassfish的日志记录并让我自己的日志记录解决方案优先吗?搜索之后,我只找到了使用logging.properties修改日志的方法。

我没有和我目前的实施结婚,但我有兴趣让它发挥作用。

感谢。

2 个答案:

答案 0 :(得分:1)

正如the other answer中所建议的那样,尝试将GlassFish配置为在委托之前首先使用子类加载器。在sun-web.xml

<sun-web-app>
  <class-loader delegate="false"/>
</sun-web-app>

但如果这样做,这更像是一个真正的解决方案,你的应用程序不应该被 bean-validation.jar <的 weld-osgi-bundle.jar (至少相信如此)。你应该提出一个issue

更新:对于存档,建议的解决方法不起作用。但是I couldn't reproduce the issue

答案 1 :(得分:0)

简短的回答是,Glassfish做了一些令人讨厌的记录器调整,将System.out和System.err重定向到它自己的日志。我没有设法阻止它这样做,但我找到了一种方法,通过在类路径中尽早放置slf4j库并编辑Glassfish的logging.properties,在单个slf4j日志中收集所有服务器和应用程序日志消息。

如需长篇答案,请参阅this blog post