我是Log4Net的新手,我遇到了一些问题,以便将我的应用程序日志消息记录在日志文件中。我认为Web.config文件配置有问题。这是我在web.config中的一个片段:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<root>
</root>
<logger name="Tomahawk" additivity="False">
<level value="ALL" />
<appender-ref ref="MyFileAppender" />
</logger>
<appender name="MyFileAppender" type="log4net.Appender.FileAppender">
<file value="application.log" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message%newline" />
</layout>
</appender>
</log4net>
此外,我在AssemblyInfo.cs中包含以下行:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
在C#代码中, ALL 我这样做:
ILog log = LogManager.GetLogger("Tomahawk");
log.info("Some debug info...");
但没有任何反应。日志文件中没有记录任何内容。
有没有人对这个问题有所了解?
答案 0 :(得分:1)
尝试以下方法:
第1步 - 创建一个名为 log4net.config的单独文件
第2步 - 从xml中删除这些行
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
第3步 - 配置与此类似的根部分:
<root>
<level value="DEBUG" />
<appender-ref ref="MyFileAppender" />
</root>
第4步 - 在 Program.cs 中包含以下内容:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
第5步 - 在 Startup.cs 类中,让您的记录器使用此全局变量
private static ILog log = LogManager.GetLogger(typeof(Startup));
第6步 - 在配置方法内记录您的信息消息
if (env.IsDevelopment())
{
log.Info("Yeap! We are in development now! That's great!");
app.UseDeveloperExceptionPage();
}
第7步 - 打开 application.log 文件和Voilà!!