[英]Log from multiple projects in single solution
我有一個解決方案,需要使用log4net從不同的程序集進行日志。 解決方案中的第一個項目( PCBClient.cs ,一個Web客戶端)按預期方式記錄,但是下一個項目( WriteUtilities.cs ,后端數據庫功能)根本不記錄。 我遵循了Falafel.com 上的說明以及此SO頁面上的后續說明以及DreamInCode.net上的線程。
顯然我缺少了一些東西。
我已經在WriteUtilities中添加了初始項目PCBClient作為參考。 我無法進行對等的操作,因為它會創建循環引用,也許我需要使引用變為另一種方式? 我已經在PCBClient的web.config中創建了一個新的記錄器,並根據log4net附加了所引用程序集的名稱。 常見問題解答:我可以從另一個程序集中加載附加程序嗎? 使用指定的形式:
<appender name="..." type="MyNamespace.MyAppender, MyAssembly">
(我有理由確定我不需要程序集名稱后的.cs嗎?):
<appender name="WriteUtility_TransactionLog" type="log4net.Appender.FileAppender, WriteUtilities">
<File value="WriteUtilityTransactions.log"/>
<AppendToFile value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyyy-MM-ddTHH:mm:ss} %logger - %message%newline"/>
</layout>
</appender>
在web.config中也創建了對它的引用:
<logger name="WriteUtility_TransactionLog">
<level value="ALL"/>
<appender-ref ref="WriteUtility_TransactionLog"/>
</logger>
然后將PCBClient中web.config和WriteUtilities中鏈接的web.config的屬性標記為“如果較新則復制”。
在程序集WriteUtilities.cs中,我添加了:
private static readonly ILog WriteUtilities_TransactionLog = LogManager.GetLogger("WriteUtility_TransactionLog");
在PCBClient項目的AssemblyInfo.cs中,我添加了:
// Log4Net configuration
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
並注釋掉了PCBClient和WriteUtilities中的原始日志記錄引用,因此它們都應指向上面的一個(我認為):
//point at logging .dll
//[assembly: log4net.Config.XmlConfigurator(Watch = true)]
我仍然無法從WriteUtilties登錄,我還缺少什么?
更改標簽,使其看起來像:
<log4net debug="true">
也許這將對您解決這個難題有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.