2011年8月30日 星期二

2011年8月10日 星期三

[java]log4j設定

#定義logger "test.board", 這可以以namespace層級方式設定, 如傳入class屬於test.board.aaa, 則會取到此logger
log4j.logger.test.board=debug, A1
#避免讓rootLogger也有重複的輸出, 要加入這一行
log4j.additivity.test.board=false
#設定logger "test.board"顯示在哪種裝置上
log4j.appender.A1=org.apache.log4j.ConsoleAppender
#設定logger "test.board"顯示訊息的格式
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p [%t] (%F:%L) - %m%n
log4j.appender.A1.layout=org.apache.log4j.PatternLayout


"Log4j的關鍵之處在于它的繼承思想。也就是一個Log可以繼承另外一個Log的屬性(輸出到哪里,日誌等級,日誌格式等等)。怎麼繼承?
Log4j是根據Log的名字來判斷繼承關係的,比如:
名字為“com.zhlmmc.lib”的Log就是“com.zhlmmc.lib.log”的parent,明白了吧!Log4j還有一個rootLogger,相當於JavaObject回過頭來看“LogFactory.getLog(Test.class)”這裏的“Test.class”事實上傳進去的是Test這個類的完整路徑(包名+類名),“test.Test”。這樣如果存在“test”這個Log那麼Test這個Log就繼承它,否則就繼承rootLogger。"




2011年8月8日 星期一

[Visual Studio] *.vshost.exe的用處

轉自http://chuiwenchiu.wordpress.com/2006/04/21/c%E4%B8%80%E5%A0%86-vshost-exe-%E6%98%AF%E5%81%9A%E4%BB%80%E9%BA%BC%E7%94%A8%E5%95%8A/
不知道有沒有人發現 bin/Debug 或 bin/Release 下會出現 [Application Name].vshost.exe,這個檔案是做什麼用的呢?依據官方[1]說法,這個是 Visual Studio 2005 為了以下三個目的所加上去的:
1. 改善除錯效能
2. Partial Trust Debugging:這個沒有用過不太清楚,不過依據文件[1]的描述,好像是為了測試應用程式的安全性必須透過 vshost 來進行初始化…
3. 設計階段可以使用 Immediate Window 進行除錯
簡言之,這個檔案就是為了除錯用。
接下來的問題是,如果程式要出貨想關閉這個功能要怎麼做呢?
只要選取 Project | Properties | Debug,將 Enable the Visual Studio hosting process 選項前的鉤鉤取消即可[3]。

參考資料:
[1] http://msdn2.microsoft.com/en-us/library/ms185331.aspx
[2] http://msdn2.microsoft.com/en-us/library/ms242202.aspx
[3] http://msdn2.microsoft.com/en-us/library/ms185330.aspx
[4] http://blogs.msdn.com/dtemp/archive/2004/08/17/215764.aspx