#眉標=SD #副標=Microsoft.NET Design Patterns專欄 #大標=.NET進階技術與設計模式-以log4net為例 #作者=文/林耀珍 -----box----- #程式1 ILog log =LogManager.GetLogger("ConsoleApp. LoggingExample"); log.Info("Application [ConsoleApp] Start"); if (log.IsDebugEnabled) log.Debug("This is a debug message"); log.Error("Exception thrown from method Bar", ex); log.Error("Hey this is an error!"); using(NDC.Push("NDC_Message")) { log.Warn("This should have an NDC message"); MDC.Set("auth", "auth-none"); log.Warn("… an MDC message for the key 'auth'"); } log.Warn("…. The MDC 'auth' key is still with us."); log.Info("Application [ConsoleApp] End"); //執行結果 [Header] 2005-02-15 22:43:26,984 [2944] INFO ConsoleApp.LoggingExample [] <> - Application [ConsoleApp] Start 2005-02-15 22:43:27,156 [2944] DEBUG ConsoleApp.LoggingExample [] <> - This is a debug message 2005-02-15 22:43:27,187 [2944] ERROR ConsoleApp.LoggingExample [] <> - Exception thrown from method Bar Exception: System.ArithmeticException Message: Failed in Goo. Calling Foo. Inner Exception provided Source: ConsoleApp at ConsoleApp.LoggingExample.Goo() in m:\rd seminar\2005 03 log4net\log4net\examples\net\1.0\tutorials\consoleapp\ cs\src\loggingexample.cs:line 100 … … … Application [ConsoleApp] End [Footer] -----end----- -----box----- #程式2 1: slot=Thread.AllocateDataSlot(); 2: stack = new Stack(); 3: Thread.SetData(slot, stack); 4: Thread.GetData(slot); 5: NDC.push() 6: NDC.Pop() 7: NDC.Peek() -----end-----