【问题标题】:How do I control jboss to start logging post application startup如何控制 jboss 开始记录应用程序启动后的日志
【发布时间】:2011-09-23 07:35:21
【问题描述】:
我们希望在应用程序启动后跟踪org.hibernate.type 类别的所有活动,因为我们希望避免在应用程序启动期间出现所有跟踪日志(因为这需要很长时间)。
注意:目前jboss6/server/default/deploy/jboss-logging.xml 包含一个TRACE 用于org.hibernate.type 类别。
是否可以以编程方式启用此帖子启动?
【问题讨论】:
标签:
hibernate
logging
jboss
log4j
jboss6.x
【解决方案1】:
编写一个 POJO 来检查 JBoss 服务器的状态——它是否已启动。您可以进入 MBean:jboss.system:type=Server 并检查布尔属性 Started。如果它已启动,请使用以下方式动态更改 Hibernate 的登录级别:
Logger hibernate = (Logger)LoggerFactory.getLogger(<logger name>);
hibernate.setLevel(Level.TRACE);
现在您可以将此 POJO 与您的应用程序存档捆绑在一起,并将其安排为石英作业,以在一分钟左右后触发。当 POJO 完成它的工作时,取消它的后续调度。
如果您不想将其安排为石英作业,您可以将其部署在 deploy.last 文件夹下的单独工件,并让它立即更改日志记录级别,而无需检查 JBoss 服务器状态。