Hibernate 如何控制jboss在应用程序启动后开始记录日志

Hibernate 如何控制jboss在应用程序启动后开始记录日志,hibernate,logging,jboss,log4j,jboss6.x,Hibernate,Logging,Jboss,Log4j,Jboss6.x,我们希望在应用程序启动后跟踪org.hibernate.typecategory上的所有活动,因为我们希望在应用程序启动期间避免所有跟踪日志(因为这需要很长时间) 注意:当前jboss6/server/default/deploy/jboss logging.xml包含org.hibernate.type类别的TRACE 是否可以以编程方式启用此启动后功能?编写一个POJO来检查JBoss服务器的状态—无论它是否已启动。您可以点击MBean:jboss.system:type=Server并检查

我们希望在应用程序启动后跟踪
org.hibernate.type
category上的所有活动,因为我们希望在应用程序启动期间避免所有跟踪日志(因为这需要很长时间)

注意:当前
jboss6/server/default/deploy/jboss logging.xml
包含
org.hibernate.type
类别的
TRACE


是否可以以编程方式启用此启动后功能?

编写一个POJO来检查JBoss服务器的状态—无论它是否已启动。您可以点击MBean:jboss.system:type=Server并检查布尔属性已启动。如果已启动,请使用以下方法动态更改Hibernate的日志记录级别:

Logger hibernate = (Logger)LoggerFactory.getLogger(<logger name>);
hibernate.setLevel(Level.TRACE);
Logger hibernate=(Logger)LoggerFactory.getLogger();
hibernate.setLevel(Level.TRACE);
现在,您可以将此POJO与应用程序归档捆绑在一起,并将其安排为石英作业,在一分钟左右后触发。POJO完成其作业后,取消其后续计划

如果您不想将其安排为quartz作业,可以在deploy.last文件夹下将其部署为一个单独的工件,并允许它立即更改日志记录级别,而无需检查JBoss服务器状态