Log4net无法将日志写入日志文件。

168

我使用了Log4net创建了一个简单的场景,但是我的日志附加器似乎不起作用,因为消息没有被添加到日志文件中。

我将以下内容添加到web.config文件中:

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false"/>        
</configSections>

<log4net>
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
            <file value="D:\MyData\Desktop\LogFile.txt" />
            <appendToFile value="true" />
            <encoding value="utf-8" />
            <layout type="log4net.Layout.SimpleLayout" />
    </appender>


    <root>
        <level value="INFO" />
        <appender-ref ref="LogFileAppender" />
    </root>
</log4net>

在全局 ASAX 文件中,我已经添加了以下内容:

ILog logger = LogManager.GetLogger(typeof(MvcApplication));

而在Application_Start方法内部:

logger.Info("Starting the application...");

为什么测试日志“启动应用程序…”没有添加到日志文件中?

13个回答

1
请确保以下代码行存在于AssemblyInfo.cs文件中:

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

并且还要检查Application_start()方法中是否存在此行代码。
log4net.Config.XmlConfigurator.Configure();

0

有几种使用log4net的方法。 当我正在寻找解决方案时,我发现它很有用。该解决方案在这里描述:https://www.hemelix.com/log4net/


0

你的配置文件看起来正确。然后,你需要将Log4net配置文件注册到应用程序中。这样你就可以使用下面的代码:

var logRepo = LogManager.GetRepository(Assembly.GetEntryAssembly());
XmlConfigurator.Configure(logRepo, new FileInfo("log4net.config"));

在注册过程之后,您可以调用以下定义来调用记录器:
private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

log.Error("Sample log");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接