NET问答: Log4Net 无法将日志写入到 log 文件的求助.....

咨询区

  • john84

我在一个小项目中用上了 Log4Net,程序跑起来后没有任何日志写入到 log 文件,可能是我的 log appender 配的有问题,尴尬????,大家看看我这样配的有问题吗?

web.config 完整的配置如下。


<configSections>
    <p 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>


然后在 global.ascx 中是这样配置的。


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

然后是 Application_Start 方法。


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

为啥消息 Starting the application...  没有写入到 log 中哈。。。

回答区

  • Andreas Paulsson

你还缺了一个调用


log4net.Config.XmlConfigurator.Configure();

把它放到一个代码可以执行到的地方,比如:Global.asax


void Application_Start(object sender, EventArgs e) 
{
    // Code that runs on application startup

    // Initialize log4net.
    log4net.Config.XmlConfigurator.Configure();
}

你也可以放到 AssemblyInfo.cs 的尾部。


 [assembly: log4net.Config.XmlConfigurator(Watch = true)]


  • Ayub

确保 log4net.config 的属性面板上一定要设置为 Copy always


  • Rahatur

在我的场景下,我需要给 IIS_IUSRS 赋予一个读写 logfile 的权限。

点评区

首先说一下为啥要精选本题,因为大佬们提到的坑,我都踩到了。。。后来不得已,将 操作步骤 写入到 印象笔记 中,搞笑的是最近部署一个新加坡项目时,刚好就遇到了当前 IIS 用户没有写入权限,各种报错,也是尴尬。

原文链接:hhttps://stackoverflow.com/questions/3618380/log4net-does-not-write-the-log-in-the-log-file

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值