簡體   English   中英

Log4net 停止使用自定義渲染器

[英]Log4net stops using custom renderers

我有許多自定義的 object 渲染器,這樣我就可以盡可能地保持我的日志語句干燥。 當我第一次部署我的應用程序時,log4net 無法識別自定義渲染器,但它確實可以正確執行其他所有操作。 如果我觸摸配置文件(使其看起來已更改),文件觀察器會獲取更改並且渲染器開始工作。 但是過了一段時間他們又停止工作了,我不得不再次觸摸 log4net 配置文件。

設置是 a.Net 3.5 (sp1) wcf 應用程序。 問題出現在 vs 2008 開發 web 服務器和 IIS 7 上 win 2008。我有一個名為 log4net.config 的配置文件,我正在使用 AssemblyInfo 方法來指出它。

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

我訪問記錄器的方式是通過使用 class 上的 static 成員,就像這樣。

private static readonly ILog log = LogManager.GetLogger(typeof(Service));

渲染器的配置與此類似。

<renderer renderingClass="MyCompany.Log4net.SearchRequestRenderer, MyCompany.Log4net" renderedClass="System.DirectoryServices.Protocols.SearchRequest" />

這些渲染器都在一個單獨的程序集中,與發生日志記錄的主程序不同。 我錯過了什么或做錯了什么? 我不知道為什么它不能立即識別渲染器,然后又忘記了它們。

我找到了答案。 我必須為渲染的 class 包含更多組裝信息。

<renderer renderingClass="MyCompany.Log4net.SearchRequestRenderer, MyCompany.Log4net" renderedClass="System.DirectoryServices.Protocols.SearchRequest" />

成為

<renderer renderingClass="MyCompany.Log4net.SearchRequestRenderer, MyCompany.Log4net" renderedClass="System.DirectoryServices.Protocols.SearchRequest, System.DirectoryServices.Protocols, Version=2.0.0.0 , Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM