我正在尝试将我的代码从 Jboss 5.1 更新到 Jboss 7,我发现 jboss-as-7.1 有自己的日志框架。我想知道在 log4j 上使用 jboss 自己的日志框架的主要区别和优势。我还需要一个如何在这个框架中使用 appender 的例子。
1 回答
JBoss 7 的内置日志模块基于Java Util Logging。使用它的主要(唯一?)原因是它已经集成,并且它不像人们希望推出自己的解决方案那样微不足道。如果您不想使用 JUL API,可以使用提供的 SLF API。
您可以在实例配置文件中配置附加程序,例如standalone.xml
. 查找日志记录子系统配置:
<profile>
<subsystem xmlns="urn:jboss:domain:logging:1.1">
它带有一个工作示例配置。请注意,通常所说的在配置中appender
都有标题,例如或。*handler
console-handler
periodic-rotating-file-handler
在这里,您可以找到有关日志记录配置的一些建议。
编辑:一些澄清。
换一种说法——没有真正的理由为什么你应该更喜欢使用内置的 jboss 日志而不是你选择的框架。唯一的问题是配置自己的框架需要额外的努力并且可能仍然失败(我花了一些时间弄清楚如何配置我的 JBoss 以使用 logback - 最后放弃了)。所以我没有资格告诉你如何保持你的 log4j 实现:)
您可以通过“本机”JUL API 或 SLF4J 桥使用 jboss 日志记录。两者都包含在/modules
目录中,因此您不需要在运行时包含任何其他库。只需在您的代码中请求您的首选Logger
,您就可以开始了:
单频:LoggerFactory.getLogger(...);
七月: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>