如何启用 Common.Logging.Log4Net

use*_*980 4 asp.net-mvc log4net common.logging

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

  1. 创建一个新的 ASP.NET MVC 空项目
  2. 安装“Common Logging Log4Net 1211”NuGet 包
  3. 将以下行添加到默认的 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>
    
    Run Code Online (Sandbox Code Playgroud)
  4. 确保应用程序。池身份帐户对我尝试保存日志文件的路径具有 RW 访问权限。

  5. 出于测试目的,从代码中抛出一个随机异常。

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

use*_*980 5

该问题与更改程序集名称的“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>
Run Code Online (Sandbox Code Playgroud)