asp.net-mvc - 如何启用 Common.Logging.Log4Net

标签 asp.net-mvc log4net common.logging

我正在尝试启用 Common.Logging.Log4Net 将所有类型的日志写入日志文件。教程使它看起来如此简单,但我不知道我做错了什么。这些是我正在采取的步骤:

  • 创建一个新的 ASP.NET MVC 空项目
  • 安装“Common Logging Log4Net 1211”NuGet 包
  • 将以下行添加到默认的 web.config:






    <common>
        <logging>
            <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net">
                <arg key="configType" value="INLINE" />
            </factoryAdapter>
        </logging>
    </common>
    
    <log4net>
        <root>
            <level value="ALL" />
            <appender-ref ref="FileAppender" />
        </root>
        <appender name="FileAppender" type="log4net.Appender.FileAppender" >
            <param name="File" value="C:\Users\MyName\Downloads\log.txt" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
            </layout>
        </appender>
    </log4net>
    
  • 确保应用程序。池身份帐户对我尝试保存日志文件的路径具有 RW 访问权限。
  • 出于测试目的,从代码中抛出一个随机异常。

  • 我错过了什么吗?有没有办法调试log4net?请帮助这个可怜的灵魂。谢谢你。

    最佳答案

    该问题与更改程序集名称的“Common.Logging.Log4Net”的 NuGet 包有关。这实际上修复了它(请注意新的程序集名称,是 Common.Logging.Log4Net1211 ):

    <common>
        <logging>
            <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net1211">
                <arg key="configType" value="INLINE" />
            </factoryAdapter>
        </logging>
    </common>
    

    关于asp.net-mvc - 如何启用 Common.Logging.Log4Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30649431/

    相关文章:

    c# - 如何将日期从 Model.FirstOrDefault() 转换为短日期格式

    c# - 如何堆叠日志消息并在发生异常时记录它们?

    logging - TraceSource 的 Common.Logging

    c# - log4net - 使用 .config 文件部分(WebService/IIS)配置存储库 [MyProject] 时出错

    c# - 在asp.net core webapi中实现log4net

    .net - Common.Logging 有什么替代品吗?

    nuget - 如何防止nuget更新依赖项?

    asp.net - 将 mvc 应用程序发布到 Web 服务器后无法生成 SSPI 上下文异常

    c# - mvc 中的自定义错误处理不起作用

    c# - 在 DropDownList 更改上使用新模型刷新 MVC PartialView