我有一個奇怪的問題。我在解決方案中有多個項目。其中之一是WebAPI,它記錄得很好。另一個是MVC管理站點,這個不會登錄。這是我嘗試過的。log4net的單獨的配置文件不工作
我的日誌代碼:
var log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
log.Info("Some log message");
在集信息我想每個以下的...
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "logging.config", Watch = true)]
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "C:\\full_path\\logging.config", Watch = true)]
在Global.asax的Application_Start我試過以下(去除集信息線)
log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo("Logging.config"));
var log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
log.Info("Application starting");
這也不會創建日誌。我可以創建一個方法是使用global.asax中的代碼和logging.config的完整路徑。
我很困惑,因爲工作的WebAPI只用集信息,只有一個相對路徑。我也做了與該程序集信息解決方案(相對路徑)的MVC項目的樣本虛擬解決方案,它太在那裏工作。
任何想法?
更新 - FOUND發行
我不得不安裝在的Application_Start配置文件守望者:
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory + "logging.config"));
原來,DotNetOpenAuth.Core.dll使用log4net的,並會使用集信息解決方案不工作。我發現在這個博客的細節:http://hanskindberg.wordpress.com/2013/04/07/log4net-configuration/
感謝
是否有權限問題(IIS下運行它,並試圖寫入一個文件可能有問題)?你有沒有試過[調試](http://stackoverflow.com/q/677640/724591)呢?您是否嘗試過在示例application_start代碼中使用完整路徑?你的配置是否有一個根元素,或者它與任何'DeclaryingType'打印出來的內容相匹配? – matth
權限問題:我不這麼認爲,因爲在Global.asax運行它有完整路徑的作品。 – BCarlson
調試:在VS2012,它只是沒有錯誤執行,當我登錄。 Log4Net調試,我沒有能夠得到它記錄任何東西。令人困惑的是,相同的配置工作或不基於相對/完整路徑和全局vs assemblyInfo工作。 – BCarlson