我正在嘗試使用重寫的XmlLayoutBase與log4net來打印自定義日誌。它昨天正在工作,但我做了一些重組,現在它正在炸燬。這是我迄今爲止所做的。log4net無法找到自定義XmlLayoutBase
的AssemblyInfo.cs
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
CustomXmlLayout.cs
namespace MyCompany.MyProduct.MyService.Utilities
public class CustomXmlLayout : XmlLayoutBase
{
protected override void FormatXml(XmlWriter writer, LoggingEvent loggingEvent)
{
//Write stuff
}
}
log4net.config
<?xml version="1.0"?>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logfile" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd'.xml'" />
<staticLogFileName value="false" />
<maxSizeRollbackups value="15" />
<layout type="MyCompany.MyProduct.MyService.Utilities.CustomXmlLayout" />
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
Log.cs
public static class Log
{
private static ILog log =
log4net.LogManager.GetLogger(typeof(Log));
static Log()
{
XmlConfigurator.Configure();
}
private static bool IsEnabled()
{
//Verify stuff
}
public static void Write(LogEntry entry)
{
if (IsEnabled())
log.Debug(entry);
}
}
無論出於何種原因,致電log.Debug
永遠不會在我的自定義類中達到FormatXml
。有人有主意嗎?
編輯它工作正常,當我把log4net的配置重新在web.config中,所以我大概猜到了一些與集信息...但我看不出有什麼
你檢查你的輸出窗口,可能發生在幕後的任何錯誤? – DaveDev 2012-04-18 21:14:40
它給我:'log4net:錯誤XmlConfigurator:無法找到應用程序的.config文件中的配置節「log4net」,但在AssemblyInfo我指示它看在log4net.config而不是web.config?我還需要那裏的配置標籤嗎? – FlyingStreudel 2012-04-18 21:18:33