我嘗試使用Log4Net與Unity和攔截...它看起來像一切應該工作,但不......我有兩個問題...我認爲用一個解決方案。 當我登錄到文件時,我應該記錄我正在登錄的方法。逸岸,我有這樣的配置:如何使用Log4Net與攔截(MS Unity)
<appender name="MyFileAppender" type="log4net.Appender.RollingFileAppender">
...
<layout type="log4net.Layout.PatternLayout">
<!-- %d = date, %t = thread, %p = level, %m = message, %n = new line -->
<param name="ConversionPattern" value="%d{dd/MMM/yyyy HH:mm:ss} [%t] %-2p - %M %m%n"/>
</layout>
</appender>
在模式我有%M
,這應該是我打電話的方法...但我使用的攔截與統一,因此,所記錄的方法名是INVOKE:
var result = getNext().Invoke(input, getNext);
這是通過反射調用我的真實方法的方法。那麼如何使用log4Net的PatternLayout
來解決這個問題呢?可能嗎? 我的第二個問題,我應該有兩個不同的附加目的地......我將創建一個記錄器名爲MyNamespace.[MyClass].[MyMethod]
<logger name="MyNamespace.MyClass.MyMethod">
<level value="ERROR" />
<appender-ref ref="WebsiteFileAppender" />
</logger>
但這不能正常工作,因爲,對於log4net的,我記錄的另一種方法,即是invoke
,而不是我真正的方法。我希望一切都很清楚。
任何人都可以幫助我嗎?
謝謝