Re: [問題] Log4j這個Library的設定問題

看板java作者 (痞子軍團團長)時間19年前 (2006/04/08 03:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/5 (看更多)
耶~ 死皮賴臉回 po... \囧/ ※ 引述《feicsh.bbs@bbs.wretch.cc (飛)》之銘言: : 你先搞懂啥是Log4j才來回答吧。 耶~ 我現在還是沒搞懂啥是 Log4j... \囧/ : 你的方法要是能work, 以後我倒轉來走路。 : 根本答非所問 在 PTT 這裡,大概自從溜鳥俠被記過處分之後 就沒有人把打賭這件事情當真了(不知道有沒有人來考據一下的 XD) 這件事情是我這個白爛痞子沒先 Test 就胡思亂想亂說話 (路人:喵的,又來一次...) 所以,在這裡跟原 po LittleBull、以及 feicsh 版友 還有有看我那篇文章的受害者道歉 [跪拜之 Orz] 不過呢... 在這件事情上頭,要知道真相是很容易的 Test 一下就 OK (路人:喵的,那你為啥不先 Test 再來 po 文 [翻桌]) 只說我答非所問... 實在鞭屍鞭的不夠大力 而這樣子的文章,實在對收看 Java 版的觀眾,沒啥助益阿... (路人:靠~ 也比散播不實謠言的死痞子好) 所以,這篇文章,就是幫各位受害者狠鞭我這個死痞子 這次真的都測試過啦,大家可以安心服用 \囧/ 當然,如果還是有錯誤之處,還請各位狠批... [擺茶點] (路人:不要讓這個死痞子活的太快樂阿... [群毆]) : ※ 引述《PsMonkey.bbs@ptt.cc (痞子軍團團長)》之銘言: : > 耶~ 我沒有使用過... lalala : > (而且,從來不知道 log4j 要 "安裝" XDXD) : > 如果你前面說的沒有錯 : > 你試試看看在你的 jsp 檔案當中 : > java.io.File file = new File(""); : > System.out.println(file.getAbsolutePath()); : > 然後把你的 .properties 放在那個目錄底下... [茶] : > 後面道理相同 之前之所以會這樣子想 是很天真的把 log4j 讀取 properties 檔案的方法 當作是單純的檔案讀取 所以才會這樣子亂開藥方 \囧/ 我是不想看人倒立啦...(看正妹裸奔比較想... \囧/) 不過,既然被罵了,自己好歹也真的來測試一下 恩... 果真失敗... (路人:...... [群毆]) 可是又不想要屈服(?)EXTASY 板友提供的方法,於是... 聽說 log4j 是 Open Source.... 那還等什麼,衝原始碼阿... 這樣子可以不用搞懂 log4j 在幹麻,還是可以找到問題的源頭 logging-log4j-1.2.13.zip 裡頭就有附帶原始碼 匯入到 Eclipse 的 Project 當中,發現有一堆 Error... (主要是沒有 JMS 的 library) 有問題的目錄通殺! 砍完之後,測試程式還是可以跑 \囧/ 接著,從 Logger.getRootLogger() 開始 trace 於是,在快速往回找的策略下,我的 trace 路途是這樣子的... Logger.getRootLogger() ↑ LogManager.getRootLogger() ↑ [@ LogManager.java] repositorySelector.getLoggerRepository().getRootLogger() ↑ [@ LogManager.java] Hierarchy h = new Hierarchy(new RootLogger((Level) Level.DEBUG)) h.getRootLogger() ↑ [@ LogManager.java] new RootLogger((Level) Level.DEBUG) ↑ RootLogger(String) ↑ Logger(String) //喵的,又回頭了是怎樣 //Design Pattern 沒學好,所以看不懂 XD ↑ Category(String) 看到 Category 的 constructor,覺得味道不太對 怎麼都沒扯到設定的事情... 於是一路回頭,到了 LogManager.java 當中 在 76 行會發現一個 static 的 block 裡頭除了 Hierarchy h = new Hierarchy(new RootLogger((Level) Level.DEBUG)); repositorySelector = new DefaultRepositorySelector(h); 還有些別的 於是找了一下,發現關鍵點在 105 行(還有 122 行) 跳到 Loader.getResource(String) 一看.... 原來是用 ClassLoader...... 原來是用 ClassLoader...... 原來是用 ClassLoader...... 好了,於是真相大白了... (路人:拜託,用 ClassLoader 才是比較像樣的做法好唄... 老師說要看王森大人的 Java 深度歷險 要看書! 要看書! 要看書! 結果你不聽 現在出包了才在這裡 trace code... ) 惡補一下 ClassLoader 的相關說明之後... 耶~ 測試成功... 所以,以原 po 的需求,放在哪裡最好呢? 放在 {container}/webapps/{ap_name}/WEB-INF/classes 最妥當 報告完畢... ps. 我還是不知道 log4j 是什麼東西... [飄走] ==== 經過這次事件之後,如果還有人覺得我 Java 很強.... (是真的有人這樣子說我啦... >///<) 拜託,醒醒吧... 我一點也不強,我只是不害怕丟人現眼跟面對未知數... [逃] -- 侃侃長論鮮窒礙 網站:http://www.psmonkey.idv.tw 眾目睽睽無心顫 個人版:telnet://legend.twbbs.org 煢居少聊常人事 殺頭容易告白難 歡迎參觀 Java 版(@ptt.cc)精華區 \囧/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.204.16.17
文章代碼(AID): #14Dha2UH (java)
文章代碼(AID): #14Dha2UH (java)