2011-10-20 82 views
3

登录我想用SLF4J +的logback用于登录的JBossAS7。的JBoss AS7:用的logback

Additionaly我必须解决以下要求:

  • 我需要将多个部署的应用程序中共享一个的logback配置/上下文/ EAR的
  • 我需要改变运行时的logback配置,而无需重新部署/耳朵重启
  • 化妆(尽可能)登录我的日志配置内部可见JBoss服务器的条目(例如部署日志等)

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

我会很高兴得到一些提示,这可以如何解决。

问候,

拉尔斯

+0

如果你可以放松你的日志配置中的jboss服务器日志条目的要求,这是微不足道的,并且效果很好。这是最难的部分。 – eis

回答

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中登录可以真正使用一些更好的文档。我计划在更新时找到时间:-)我真的只需要花时间。

+0

这样我将紧裹测井门面,这是由在JBoss层包裹?听起来有些不可思议...... 有没有办法来取代简单的SLF4J +的logback JBoss的层?我需要控制来自我的应用程序的日志记录。我想创建一个模块来声明它的依赖关系,但slf4j首先由AS使用,所以绑定到logback不会发生? – reschifl

+0

@reschifl在JBoss AS7中替换日志记录的唯一方法是重写每个子系统中的所有日志记录:-) 我们将介绍每个部署日志记录功能,https://issues.jboss.org/browse/ AS7-514。看来你现在的主要问题是你想要AS7允许的一点配置,如果你使用standalone.xml或domain.xml配置。这并不意味着你需要使用JBoss Logging。 –

1

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

如果您通过可用的系统属性进行搜索,您会发现一些jboss。*属性,这些属性可能在您的logback配置中用于查找放置日志文件的位置。

个人而言,我希望JBoss会切换到使用slf4j。