2010-07-01 33 views
2

如果有人善意澄清我的困惑,我真的會感到厭煩。我正在一家開發和監控.NET框架中的預付費重裝系統的公司實習,目前我們正在使用C#,並且我需要研究log4net並幫助他們將日誌框架從簡單的日誌記錄提升到高級日誌記錄,和佈局。到目前爲止,我被告知調查log4net。我閱讀教程和基本我用控制檯應用程序和簡單的Web應用程序完成它,但問題是日誌發生時,我運行應用程序,我不想要的,因爲應用程序已經運行在服務器上。有些人會告訴我一種方法來實現日誌記錄,而無需調試應用程序並使其登錄入口點。我非常困惑,因爲整個事情都是新的。在此先感謝如何爲我們在我們的服務器上開發和運行的應用程序配置log4net?

回答

1

如果他們希望您使用log4net,他們會很樂意重新啓動服務器上的更新程序。畢竟,你會想實際上將日誌記錄添加到你想要記錄的程序中。因此,如果您使用的是log4net配置文件,您的程序將監聽該文件,並且可以隨時更改它,而無需重新啓動或重新編譯應用程序。這將立即生效,因此您獲得了極大的靈活性。

如果您想要集中監視事物,可以考慮將所有內容都記錄到數據庫中。我使用Log4View(商業程序)和他們的TCP遠程,這很好。

+0

感謝邁克爾對直接答覆。 我將指導我的研究以xml格式配置log4net。 還有一個問題。 如果我使用xml文件配置log4net,是否需要將它放在每個應用程序的根目錄中?或者我可以保存在我的目錄中,並在我的程序集中引用它,將它引導到位置(例如「C://logfile.config」),以便我可以創建一次配置文件,而不是複製到所有應用程序。 它是否可行? – Precious 2010-07-01 04:13:31

+0

如果您將它放在與可執行文件相同的目錄中,您可以轉到AssemblyInfo.cs並添加一行代碼來監視它。否則,您將不得不手動連接配置。我希望這有助於! – 2010-07-01 17:47:21

2

你需要建立的是一個接收器。 Log4net有一個插件架構,它支持你描述的內容。更多的文檔是在這裏:

http://logging.apache.org/log4net/release/manual/plugins.html

摘錄:
RemoteLoggingServerPlugin

創建遠程日誌接收器,它可以 接收來自 RemotingAppender記錄事件。創建一個遠程日誌接收器 。必須將單個參數 傳遞給 指定接收器URI的構造函數。這是一個名稱 用於識別日誌記錄接收器 通過遠程發佈的對象和必須 與客戶商定之前 通信可以發生。

實例:

LogManager.GetRepository().PluginMap.Add 
    (new RemoteLoggingServerPlugin("LoggingSink")); 
+0

謝謝code4life 我會看看這一個。該文檔包含初學者的最低信息,但我會谷歌,並嘗試找到詳細的文章。 – Precious 2010-07-01 04:25:03

相關問題