我們有幾個長壽命的對象,每個系統中的同一類。只有大約5或6個,它們連接到外部系統。我希望每個這些實例都有自己的可以登錄的文件。在log4net中爲每個類創建日誌的最佳方式是什麼?
這樣做的最好方法是什麼?我現在只能看到以編程方式添加記錄器作爲答案。
更新: 我想避免使用配置文件,因爲如果我添加一個新的連接到不同的遠程主機,那麼我希望它的日誌輸出到連接後命名的文件,而不必先在配置中進行破解文件。如果它是自動完成的將會很好。我不知道這可以在一次配置文件中實現,並且你不需要每次都編輯它。
我們有幾個長壽命的對象,每個系統中的同一類。只有大約5或6個,它們連接到外部系統。我希望每個這些實例都有自己的可以登錄的文件。在log4net中爲每個類創建日誌的最佳方式是什麼?
這樣做的最好方法是什麼?我現在只能看到以編程方式添加記錄器作爲答案。
更新: 我想避免使用配置文件,因爲如果我添加一個新的連接到不同的遠程主機,那麼我希望它的日誌輸出到連接後命名的文件,而不必先在配置中進行破解文件。如果它是自動完成的將會很好。我不知道這可以在一次配置文件中實現,並且你不需要每次都編輯它。
最好的答案IS programatical日誌記錄,我經歷了同樣的問題,並發現它作爲唯一的解決方案。
如需更多幫助,檢查這個問題(我的) StackOverFlow Question posted by me
,我的事情你的,我的問題是一樣的,動態記錄器,重新創建記錄器,在運行時:)
處置記錄器和所有的東西如果還有其他問題,請問,會很樂意提供幫助,因爲我經歷了所有這些:)
其實我可以看到一對夫婦的可能性:
我已經在使用依賴注入。我寧願不必使用配置文件,因爲每當我想添加新的連接時,都需要更改我們的配置文件。我寧願自動發生。 – uriDium 2011-05-26 09:27:16
然後[AOP](http://code.google.com/p/postsharp-user-plugins/wiki/Log4PostSharp)可以通過簡化配置文件生成來簡化屬性的使用,但您的初始設置時間將是有點複雜(但會很容易使用)。 – 2011-05-26 09:30:15
我有一篇文章,可能會幫助:
這是關於在運行時更改的日誌文件。你可以做的是將每個實例的文件名傳入你的log4net文件。這樣你可以爲你的類的每個實例創建一個日誌文件。
至於你不想使用配置文件的編輯,這種方法解決了這個問題,以便你可以使用配置文件,但仍然有你想要的靈活性。
我認爲這個工程如果進程想登錄到不同的文件。我想創建的所有不同日誌都屬於同一個進程。 – uriDium 2011-05-30 07:21:18
@uriDium - 示例是針對每個進程的一個文件。但是,您可以將其更改爲每個實例(類的)一個文件。只需更改此行以獲取您的實例名稱或您傳入的另一個自定義屬性:'logFile = Process.GetCurrentProcess()。ProcessName +「。log」;'無論您傳遞給此logFile變量是什麼,登錄。這意味着每次初始化一個類時都可以創建一個不同的日誌文件,這就是你想要做的。 – IAmTimCorey 2011-05-30 19:15:58
我幾乎得出了相同的結論。 – uriDium 2011-06-20 08:52:13