我开发了一个servlet,它输出JBoss 7.1的server.log文件,以便于调试。
我想要做的是自定义JBoss的输出,并显示生成每行输出的war。
为了更好地理解这是现在的示例输出:
我想要的是输出一些东西来识别这个输出来自哪个部署。
在每个输出中的URL之后,我注意到7001端口之后的数字对于每个部署是不同的,但不知道如何将其与war文件相关联....
任何人都知道我该怎么做?
提前致谢
更新
我在网上发现了http://java.dzone.com/articles/configuring-logging-jboss关于配置JBoss的问题,但遗憾的是还有另一个版本。这里解释了如何让log4j为每个部署创建不同的日志文件。这对我来说是最终的解决方案。
答案 0 :(得分:1)
首先,您(使用日志的内容)似乎正在使用System.out.println和System.err.println。
如果您将日志切换到slf4j,log4j,commons-logging以及jboss-logging(谢谢James)将能够看到您正在登录的软件包。
使用正确的日志记录工具后,您可以通过编辑配置文件按类别进行过滤。
此外,日志记录将显示更可读,即:
05:21:42,272 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
我假设你在$ JBOSS_HOME / standalone / configuration / standalone.xml中使用独立配置
您需要找到记录子系统
<subsystem xmlns="urn:jboss:domain:logging:1.1">
并创建一个类型为periodic-rotating-file-handler的新appender:
<periodic-rotating-file-handler name="APPLOG1">
<formatter>
<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="applog1.log"/>
<suffix value=".yyyy-MM-dd"/>
<append value="true"/>
</periodic-rotating-file-handler>
然后添加过滤器:
<logger category="com.yourapppackage">
<level name="INFO"/>
<handler name="APPLOG1"/>
</logger>
那应该做的工作。
如果我没弄错,你也可以从管理控制台和CLI创建appender和类别过滤器
此致