为什么我应该使用Jboss as-7的日志框架而不是log4j第三方api进行日志记录



我正在尝试将我的代码从Jboss 5.1更新到Jboss 7,我发现Jboss-as-7.1有自己的日志框架。我想知道与log4j相比,使用jboss自己的日志框架的主要区别和优势。我还需要一个如何在这个框架中使用appender的例子。

JBoss 7的内置日志记录模块基于Java Util logging。使用它的主要(唯一?)原因是它已经集成,并且它不像人们希望推出自己的解决方案那样微不足道。如果您不想使用JUL API,可以使用提供的SLF API。

您可以在实例配置文件(如standalone.xml)中配置appenders。查找日志记录子系统配置:

<profile>
<subsystem xmlns="urn:jboss:domain:logging:1.1">

它附带了一个工作示例配置。请注意,在配置中,通常称为appender的名称为*handler,与console-handlerperiodic-rotating-file-handler类似。

在这里,您可以找到一些关于日志配置的建议。

编辑:一些澄清。

换言之,与您选择的框架相比,您更喜欢使用内置的jboss日志记录并没有什么真正的原因。唯一的问题是,配置您自己的框架需要额外的努力,而且可能仍然会失败(我花了一些时间来弄清楚如何将我的JBoss配置为使用logback,最终放弃了)。所以我没有资格告诉你如何保持你的log4j实现:)

您可以通过"本机"JUL API或SLF4J桥使用jboss日志记录。两者都包含在/modules目录中,因此在运行时不需要包含任何附加库。只要在你的代码中请求你喜欢的Logger,你就可以去:

SLF:LoggerFactory.getLogger(...);

JUL:Logger.getLogger(...);

为了从JUL切换到SLF,我唯一需要做的就是为要编译的代码提供SLF API——下面是maven配置:

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
<scope>provided</scope>
</dependency>

最新更新