【问题标题】:Is it possible to override the default logging for Glassfish v3?是否可以覆盖 Glassfish v3 的默认日志记录?
【发布时间】:2010-03-10 21:50:21
【问题描述】:

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

我不喜欢我当前的实现,但我有兴趣让它发挥作用。

谢谢。

【问题讨论】:

  • 我对这个问题很感兴趣。但是,如果 GFv3 开发人员不挂在 StackOverflow 上,您将不会得到响应。
  • @Ceki 好吧,我建议在此线程forums.java.net/jive/message.jspa?messageID=379334 中发表评论。至少,你会引起 Sahoo 的注意。
  • 在 GlassFish 3.0.1 下运行的应用程序似乎看不到容器 slf4j 类。

标签: java glassfish glassfish-3 logback slf4j


【解决方案1】:

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

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

但如果这可行,这更像是一种解决方法,而不是真正的解决方案,您的应用程序不应被 bean-validation.jarweld-osgi- 的 SLF4J 绑定污染bundle.jar(至少这么认为)。你或许应该提出一个issue

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

【讨论】:

  • @krad 我不明白为什么这不起作用。但感谢您的反馈。恕我直言,您应该提出问题。
  • @Pascal Thivent - 我在 freenode 上引起了#Glassfish 的注意,我相信有些人正在测试它。到目前为止,我唯一听到的是“可能是类加载器顺序问题”。
  • @krad 嗯,这是显而易见的部分 :)
  • @Pascal Thivent - 我已经报告了这个问题:glassfish.dev.java.net/issues/show_bug.cgi?id=11683
  • @kgrad 非常感谢您的反馈。看看stackoverflow.com/questions/2418069/logback-with-ejb3-1/…,我已经更新了我的答案。
【解决方案2】:

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

有关详细答案,请参阅this blog post

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    • 2022-01-13
    • 2014-01-09
    • 1970-01-01
    • 2012-01-12
    相关资源
    最近更新 更多