2009-12-22 119 views
1

是否可以根據配置設置記錄器。我有一個網絡應用程序 使用框架。該框架是可擴展的並具有記錄器。 當我登錄時,當前記錄器被設置爲框架類。log4net記錄器配置

是否有可能,我可以配置我的web應用程序,並設置記錄器的web應用程序 loggerForWebApp和一個控制檯應用程序(它是使用 相同的框架),以loggerForConsoleApp記錄器?

+0

這是可能的,因爲我在我的答案描述。但爲什麼你會在這兩個應用程序之間共享log4net配置?你可以從你的網絡應用程序中分離出控制檯應用程序,並且仍然能夠利用你的框架,或者它被綁定到web應用程序中嗎? – 2009-12-23 08:36:54

+0

不,我不會在2個應用程序之間分享它。我想在運行時從2個不同的app/web.configs中選擇它們,它們會有不同的值。 – ram 2009-12-23 11:30:16

+0

沒錯。那麼爲什麼你需要在控制檯app.config中的webapp記錄器或web.config中的consoleapp記錄器?猜猜我沒有看到你的問題的整個背景... – 2009-12-23 12:54:07

回答

3

除了根記錄器(它必須始終在那裏),您可以命名自己的appender,裁判和水平記錄器。

例如,你可以有這樣的事情:

<root> 
.... 
</root> 

<logger name="loggerForWebApp"> 
    <level value="WARN" /> 
    <appender-ref ... /> 
</logger> 

<logger name="loggerForConsoleApp"> 
    <level value="WARN" /> 
    <appender-ref ... /> 
</logger> 

在代碼中,你會被他們的名字召喚這些記錄器:

var log = LogManager.GetLogger("loggerForWebApp"); 
0

絕對是這樣的,這是關於log4net的偉大之處之一:它可以註銷到各種各樣的記錄器。

有關appender的示例,請參閱here。可能最常用的是RollingFileAppender,但ConsoleAppender對於控制檯應用程序可能非常方便。或者,TraceAppender可以向標準.NET跟蹤偵聽器寫出進一步重定向(或在Visual Studio的調試輸出窗口中顯示)。

創建您自己的,執行IAppender

詳情後

+0

@Ram沒有詢問appenders,他問的是伐木工。 log4net世界中兩件不同的事情。 – 2009-12-23 08:30:30