JBoss AS7:使用logback进行日志记录

时间:2011-10-20 08:43:34

标签: logback jboss7.x

我想使用slf4j + logback登录JBossAS7。

另外我必须解决以下要求:

  • 我需要在多个已部署的应用程序/ EAR中共享一个回溯配置/上下文
  • 我需要在运行时更改logback配置,而无需重新部署/重新启动EAR
  • 尽可能地使我的日志配置中可见的JBoss服务器的日志条目(例如部署日志等)

我现在知道的是,JBoss使用自己的日志记录层。出于架构原因,我无法使用它。我想坚持使用SLF4J作为Logging-API和Logback作为框架。

我很乐意得到一些提示,如何解决这个问题。

此致

拉​​斯

2 个答案:

答案 0 :(得分:1)

拉​​斯, 我能想到的唯一方法是编写自定义处理程序。虽然目前还没有很好的文档记录,但您可以创建自定义的java.util.logging.Handler。你可以在logback的配置周围写一个包装器。我认为他们有一个BasicConfigurator或类似的东西。

您注册了一个自定义处理程序,如下所示:

<custom-handler name="logbackHandler" class="org.jboss.LogbackHandler" module="org.jboss.logback">
   <level name="DEBUG"/>
   <properties>
       <property name="nameOfASetterMethod" value="the value to set" />
   </properties>
</custom-handler>

<root-logger>
    <level name="INFO"/>
    <handlers>
        <handler name="CONSOLE"/>
        <handler name="FILE"/>
        <handler name="logbackHandler"/>
    </handlers>
</root-logger>

那说可能没有必要这样做。即使您正在通过不同的外观登录,应用程序服务器记录器也会记录消息。如果要写入自己的文件,可以设置不同的文件处理程序。

我意识到登录JBoss AS7确实可以使用更好的文档。我确实计划在找到时间时更新:-)而且我真的只需要花时间。

答案 1 :(得分:1)

我很确定你可以在JBoss中为你自己的应用程序使用slf4j + logback并完全绕过它的日志记录。 JBoss将继续将所有自己的日志消息记录到自己的日志中,但是您的软件根本不会连接到jboss-logging,并且会有自己的日志。我在JBoss 6下试过这个;我们还没有尝试过JBoss 7,所以事情可能会有所不同,但我对此表示怀疑。只要确保slf4j和logback jar都在你的应用程序的类路径中,你应该很好。

如果您搜索可用的系统属性,您将找到一些jboss。*属性,这些属性在您的回溯配置中可能非常有用,可用于查找放置日志文件的位置。

就个人而言,我希望JBoss转而使用slf4j。