我在这个论坛,jboss docs和互联网上已经阅读了很多东西,成功地将log4j配置与jboss一起工作为7.1.1,我不想在jboss中使用日志记录子系统。我想使用自己的log4j配置。我的jboss服务器配置为独立模式。以下是我根据文档配置log4j所做的工作:
尽管做了所有这些,我无法按照我的log4j配置让应用程序进行日志记录。
我使用自己的log4j配置而不是日志记录子系统的原因是能够使用自定义滚动文件appender进行size-rotating-file-handler,因为我希望旋转的文件有一个时间戳附加到文件名。
帮助表示赞赏,
好的,所以我创建了一个从SizeRotatingFileHandler.java扩展的类MyHandler.java,并重写了preWrite方法。 MyHandler.java位于包a.b.c中。我在模块a / b / c下创建一个子目录,在c目录中我添加了一个只有Myhandler.class文件的jar。我添加了一个module.xml
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="a.b.c">
<resources>
<resource-root path="RotatingHandler.jar"/>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="org.jboss.logging"/>
</dependencies>
</module>
然后在standalone.xml中我添加了自定义处理程序的条目
<custom-handler name="FILE3" class="a.b.c.MyHandler" module="a.b.c">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="srveree.log"/>
</custom-handler>
当我启动Jboss时,它说它找不到类a.b.c.MyHandler。我该如何解决这个错误?
更新:我解决了这个错误。模块内部的包结构存在问题。但是,我仍然回到使用jboss-as-7.1.1.Final配置log4j的原始问题。
答案 0 :(得分:3)
我能够使用jboss配置log4j。事实证明,您需要为主要部署中的每个子部署单独添加驱动。例如,我的耳朵里面装有jar和war文件。所以我在jboss-deployment-structure.xml中为每个条目添加了单独的条目,并且它有效。
<sub-deployment name="your-subdeployment.jar">
<exclusions>
<module name="org.apache.log4j"/>
<module name="org.slf4j" />
<module name="org.apache.commons.logging"/>
<module name="org.log4j"/>
<module name="org.jboss.logging"/>
</exclusions>
</sub-deployment>
答案 1 :(得分:1)
您没有指出的一件事是您是否在EAR/lib
文件夹中添加了log4j库。我猜你可能有,或者你应该看到其他错误。
我不确定log4j是否会在你的EAR里面的JAR里面有一个log4j.xml
。我认为EAR/META-INF
对于你的log4j配置文件来说是一个更合适的地方。
在这种情况下,没有理由删除日志记录子系统。另外,我并不想说服你使用它,但你可以很容易地创建一个自定义处理程序来完成你想做的事情。您可以将其基于SizeRotatingFileHandler,然后只需在rename上添加后缀。
答案 2 :(得分:0)
在
的standalone.xml中考虑配置<subsystem xmlns="urn:jboss:domain:logging:1.1">
您可以在这里设置
<console-handler name="CONSOLE">
<level name="DEBUG"/>
...
<logger category="com.myCompany">
<level name="DEBUG"/>
</logger>
...
表示:com.myCompany包中的类中的记录器应该从级别DEBUG中记录。