我剛剛在我的MVC 4應用程序中添加了Microsoft.Practices.EnterpriseLibrary.SemanticLogging(v6)和SqlServer silk。(Microsoft.Practices.EnterpriseLibrary.SemanticLogging)在SqlDatabaseLog.EnableEvents中注入EventSource
var sqlListener = SqlDatabaseLog.CreateListener("SampleEventLogger",strConnection);
sqlListener.EnableEvents(BasicLogger.Log, EventLevel.LogAlways);
這是代碼在我的控制器
BasicLogger.Log.Critical("ERROR CRITICAL");
它工作得很好!
...和現在的障礙:) 在我的MVC應用程序中,我使用Unity的DI和我注入構造函數ILogger接口。 因爲我需要使用我已經註冊到統一容器中的相同引用(否則不起作用),所以我認爲採用RegisteredType可能是解決方案。
var myRegistereType = container.Resolve<ILogger>();
sqlListener.EnableEvents(myRegistereType, EventLevel.LogAlways);
,但我收到一條錯誤
* 已經有的EventSource的GUID爲XXX XXX XXX XXX *實例
沒有人有任何想法? 謝謝