hibernate4日志选择

升级到hibernate4之后,发现它的日志没办法控制了。
也不知道他到底用的是什么日志。
分析了许久,原来他用的是jboss-logging。他在这里面定义了一系列的日志处理。
由于我的系统所有日志都通过使用slf4j+log4j2来实现的。
就hibernate不能通过slf4j->log4j2中,实在的点烦人。
 
分析过程思路是这样的,只看结果的,请忽略。
1.通过定位到日志输出位置。
 
三月 27, 2015 11:58:52 上午 org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: hibernate.cfg.xml
通过以上日志输出,找到 Configuration.java源代码,进而找到输出 INFO: HHH000043: Configuring from resource: hibernate.cfg.xml的位置。
 
2.查找它的日志实现具体用的哪一个。
/*      */   public Configuration configure(String resource )
/*      */     throws HibernateException
/*      */   {
/* 2075 */     LOG .configuringFromResource( resource );
/* 2076 */     InputStream stream = getConfigurationInputStream( resource );
/* 2077 */     return doConfigure( stream , resource );
/*      */   }
通过debug工具,跟踪LOG的实例到底是哪一个。找到其实现类: org.jboss.logging.JDKLogger
 
3.定位到日志实现类的实例是如何产生的。
4.找到日志实现实例产生类的代码,复制到src目录下,然后修改这里的代码,故意抛出一个运行时异常
5.这样就可以跟踪到日志实现类是如何产生的。
 
最后在, org.jboss.logging.LoggerProvider类中到了这样的代码:
 
/*  44 */      String loggerProvider = (String)AccessController.doPrivileged(new PrivilegedAction() {
/*     */        public String run() {
/*  46 */          return System.getProperty("org.jboss.logging.provider");
/*     */        }
/*     */      });
/*  49 */      if (loggerProvider != null) {
/*  50 */        if ("jboss".equalsIgnoreCase(loggerProvider))
/*  51 */          return tryJBossLogManager(cl);
/*  52 */        if ("jdk".equalsIgnoreCase(loggerProvider))
/*  53 */          return tryJDK();
/*  54 */        if ("log4j".equalsIgnoreCase(loggerProvider))
/*  55 */          return tryLog4j(cl);
/*  56 */        if ("slf4j".equalsIgnoreCase(loggerProvider)) {
/*  57 */          return trySlf4j();
/*     */        }
/*     */       }
 
看到这里就明白了。
如果我要接slf4j,那么有两咱方法可行
第一:增加JVM参数-D org.jboss.logging.provider=slf4j
第一:在程序的最前面加上: System.setProperty( "org.jboss.logging.provider" , "slf4j" );
 
最后,最近ITEYE上,老是出现这样的文章:

JavaEE框架Bootstrap、HTML5、SpringMVC、Hibernate(XXXX)

此人由于恶意发广告,被峰了好多号。

此人不过是整合了一下几大SSH,mybatis等之类的后端框架+bootstrap ace框架。

然后就拿到网上来卖钱,而且绝口不提bootstrap ace原作者的版权。

实在恶心可恶。

希望看到此文的朋友不要上当。

此人品行之低劣,前无古人后无来者。

具体情况,请看这篇文章:

分享html5+bootstrap前端框架-然后扒皮【bootstrap+HTML5+java+XXX】-再推荐几个bootstrap框架资源

 

你可能感兴趣的:(hibernate4日志选择)