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參數-Dorg.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框架資源

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章