Log4net没有注销任何东西
本文关键字:任何东 注销 Log4net | 更新日期: 2023-09-27 18:01:33
我正在努力使用log4net注销任何东西。我试过使用各种来源的代码,但仍然没有乐趣。谁能告诉我为什么吗?
Assembly.cs
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
MyClass.cs
private static readonly ILog log = LogManager.GetLogger(typeof(MyClass));
log.Info("Complete: "+result); // used when my "task" completes, is always called
log4net.config
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<file value="log-file.txt" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<header value="[Your Header text here]" />
<footer value="[Your Footer text here]" />
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] <%property{auth}> - %message%newline" />
</layout>
</appender>
<!-- Set the default logging level and add the active appenders -->
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
需要注意的是,所有这些都是在一个项目中。运行此程序的程序在另一个项目中,但所有日志记录都在此程序集中完成。
您可以启用log4net的内部调试输出,以跟踪为什么它不记录日志。
您是否在您的Web配置中添加了log4net部分?config还是App.config?
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
</configuration>
关于程序集属性的log4net文档是这样说的:
然而,您的日志记录已经在外部程序集中。当使用汇编属性时,这有点问题,我建议在启动代码中使用因此,如果使用配置属性,必须调用log4net以允许它读取属性。一个简单的电话LogManager。GetLogger将导致调用程序集上的属性被读取和处理。因此,必须进行日志记录在应用程序启动期间尽可能早地调用
XmlConfigurator.ConfigureAndWatch(…)
。