MyBatis Generator代碼分析二(日志)

【原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明原文章地址,謝謝滔韵!】

org.mybatis.generator.internal.util.messages.Message類:####

用于獲得消息做國(guó)際化级及,使用的bundle是org.mybatis.generator.internal.util.messages.messages棚亩;
小技巧拼卵,在輸出大量信息的時(shí)候(比如help消息)

  • 先創(chuàng)建一個(gè)key:Usage.Lines=27,得到一共多少行消息,
  • 然后用for循環(huán)遍歷每一行消息輸出:Usage.0~Usage.27

org.mybatis.generator.logging:####

放的是MGB日志相關(guān)內(nèi)容蛮艰;在MBG中腋腮,日志支持兩種雀彼,一種是Log4J,一種是JDK的logging即寡,而這個(gè)包里面的類就是對(duì)日志的一個(gè)門(mén)面徊哑。我的理解,在MBG出來(lái)的時(shí)候聪富,還沒(méi)有slf4j莺丑,所以沒(méi)有用slf4j,感覺(jué)這個(gè)包其實(shí)比較沒(méi)太大意義墩蔓;

  • AbstractLogFactory:一個(gè)日志工廠的接口梢莽,提供了一個(gè)getLog(Class)方法對(duì)傳入的Class返回一個(gè)Log;

  • Log:對(duì)日志器的接口(具體Logger的門(mén)面)奸披;提供了通用的日志器方法:

    • isDebugEnabled:是否debug級(jí)別昏名;
    • error:記錄錯(cuò)誤
    • debug:記錄debug信息;
    • warn:記錄錯(cuò)誤信息阵面;
  • Log4jImpl:對(duì)Log4J的一個(gè)適配轻局;簡(jiǎn)單對(duì)比一個(gè)方法:
    public JdkLoggingImpl(Class<?> clazz) {
    log = Logger.getLogger(clazz.getName());
    }

      public boolean isDebugEnabled() {
          return log.isLoggable(Level.FINE);
      }
    
      public void error(String s, Throwable e) {
          LogRecord lr = new LogRecord(Level.SEVERE, s);
          lr.setSourceClassName(log.getName());
          lr.setThrown(e);
          log.log(lr);
      }    
    
  • JdkLoggingImpl:對(duì)JDK的logging的適配;簡(jiǎn)單的看一個(gè)方法就明白:

      public Log4jImpl(Class<?> clazz) {
          log = Logger.getLogger(clazz);
      }
    
      public boolean isDebugEnabled() {
          return log.isDebugEnabled();
      }
    
      public void error(String s, Throwable e) {
          log.error(s, e);
      }
    
  • LogFactory:對(duì)Log工廠的一個(gè)包裝样刷;在LogFactory中持有一個(gè)AbstractLogFactory引用仑扑;
    在LogFactory中持有兩個(gè)實(shí)現(xiàn)了AbstractLogFactory的靜態(tài)內(nèi)部類:

    • JdkLoggingLogFactory:對(duì)JDKlogging的包裝類,其創(chuàng)建的Logger其實(shí)就是JdkLoggingImpl置鼻;
    • Log4jLoggingLogFactory:對(duì)Log4J的包裝類镇饮,其創(chuàng)建的Logger其實(shí)就是Log4jImpl;

在MBG中沃疮,都是使用LogFactory的LogFactory.getLog(Class targetLogClass)直接獲取對(duì)一個(gè)Class的日志對(duì)象盒让;
這個(gè)日志工廠在MBG中是固定的,不容易直接擴(kuò)展司蔬;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末邑茄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子俊啼,更是在濱河造成了極大的恐慌肺缕,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件授帕,死亡現(xiàn)場(chǎng)離奇詭異同木,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)跛十,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)彤路,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人芥映,你說(shuō)我怎么就攤上這事洲尊≡恫颍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵坞嘀,是天一觀的道長(zhǎng)躯护。 經(jīng)常有香客問(wèn)我,道長(zhǎng)丽涩,這世上最難降的妖魔是什么棺滞? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮矢渊,結(jié)果婚禮上继准,老公的妹妹穿的比我還像新娘。我一直安慰自己昆淡,他們只是感情好锰瘸,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著昂灵,像睡著了一般避凝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上眨补,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天管削,我揣著相機(jī)與錄音,去河邊找鬼撑螺。 笑死含思,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的甘晤。 我是一名探鬼主播含潘,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼线婚!你這毒婦竟也來(lái)了遏弱?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤塞弊,失蹤者是張志新(化名)和其女友劉穎漱逸,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體游沿,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡饰抒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了诀黍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袋坑。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖眯勾,靈堂內(nèi)的尸體忽然破棺而出咒彤,到底是詐尸還是另有隱情疆柔,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布镶柱,位于F島的核電站,受9級(jí)特大地震影響模叙,放射性物質(zhì)發(fā)生泄漏歇拆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一范咨、第九天 我趴在偏房一處隱蔽的房頂上張望故觅。 院中可真熱鬧,春花似錦渠啊、人聲如沸输吏。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)贯溅。三九已至,卻和暖如春躲查,著一層夾襖步出監(jiān)牢的瞬間它浅,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工镣煮, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留姐霍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓典唇,卻偏偏與公主長(zhǎng)得像镊折,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子介衔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 在應(yīng)用程序中添加日志記錄總的來(lái)說(shuō)基于三個(gè)目的:監(jiān)視代碼中變量的變化情況恨胚,周期性的記錄到文件中供其他應(yīng)用進(jìn)行統(tǒng)計(jì)分析...
    時(shí)待吾閱讀 4,950評(píng)論 1 13
  • 在應(yīng)用程序中添加日志記錄總的來(lái)說(shuō)基于三個(gè)目的:監(jiān)視代碼中變量的變化情況,周期性的記錄到文件中供其他應(yīng)用進(jìn)行統(tǒng)計(jì)分析...
    時(shí)待吾閱讀 4,961評(píng)論 0 6
  • 任何項(xiàng)目工程夜牡,日志的作用都毋庸置疑得重要与纽,監(jiān)控,問(wèn)題查找塘装,統(tǒng)計(jì)急迂,大數(shù)據(jù)資源來(lái)源等。在閱讀spring源碼過(guò)程中開(kāi)啟...
    holly_wang_王小飛閱讀 2,491評(píng)論 0 5
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理蹦肴,服務(wù)發(fā)現(xiàn)僚碎,斷路器,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • 陽(yáng)明先生跟羅整庵往來(lái)論道書(shū)信較多阴幌,這一封非常特別勺阐,特摘錄學(xué)習(xí)卷中。 執(zhí)事所以教,反復(fù)數(shù)百言渊抽,皆以未悉鄙人“格物...
    楊學(xué)智閱讀 1,208評(píng)論 0 0