2012-03-21 57 views

回答

2

您可以很容易地配置多個appender。例如像這樣:

<appender name="ConsoleAppender" ... 
    ... 
</appender> 

<appender name="RollingFileAppender" ... 
    ... 
</appender> 

<root> 
    <level value="ALL" /> 
    <appender-ref ref="ConsoleAppender" /> 
    <appender-ref ref="RollingFileAppender" /> 
</root> 

第二部分更難回答:這個想法不是選擇appender並寫入它。通常情況下,您使用記錄器,只需在適當的日誌級別寫入您認爲有用的任何內容即可。你不關心你的日誌消息寫在哪裏:這是系統管理員決定的(恕我直言)。

實際上可以爲不同的記錄器使用不同的appender。系統管理員可能會決定將YourApp.Security命名空間中的所有錯誤記錄到SMTP appender,而其餘部分只會記錄到數據庫或文件。對記錄儀的更多信息可以在這個優秀的教程中找到: http://www.beefycode.com/post/Log4Net-Tutorial-pt-5-Using-Logger-Objects.aspx

然而可以在代碼中創建追加程序(示例代碼可以發現here),但問題是,如果你真的想這樣做。例如:如果您想在某些情況下發送電子郵件,那麼我建議不要使用log4net。相反,您只需在自己的代碼中創建併發送電子郵件。

+0

感謝您的回覆。但是如果log4net支持多個appender登錄多個源。那麼爲什麼我們不能決定在運行時使用哪個appender?我的嚴重疑問是第二部分,我知道我們可以在同一個文件中有多個appender。但我的問題爲什麼我們不能在運行時使用c#代碼選擇任何一個? – 2012-03-22 11:27:51

+0

您可以決定記錄器使用哪些appender,但我仍然想知道爲什麼您要這樣做,並根據您的要求,如果沒有其他解決方案。看看這裏(應該讓你開始): http://mail-archives.apache.org/mod_mbox/logging-log4net-user/200602.mbox/%[email protected]%3E – 2012-03-27 10:35:18

+0

謝謝斯蒂芬。這是我的預期。 – 2012-03-28 08:35:49