Log4Net文件附加程序未记录

Ben*_*nCr 4 .net log4net

我的FileAppender无法正常工作.它可能不是权限,因为我是本地管理员.

我启用了内部调试,我没有从log4net获得任何错误或异常.

我的配置文件如下.谢谢

<log4net>
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
            </layout>
        </appender>
        <appender name="FileAppender" type="log4net.Appender.FileAppender">
            <file value="C:\log-file.txt" />
            <appendToFile value="true" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
            </layout>
        </appender>
        <root>
            <level value="DEBUG" />
            <appender-ref ref="ConsoleAppender" />
            <appender-ref ref="FileAppender" />
        </root>
    </log4net>
Run Code Online (Sandbox Code Playgroud)

记录的代码是有效的: -

public class Logger
{
    private static readonly ILog defaultLog;
    static Logger()
    {
        BasicConfigurator.Configure();
        defaultLog = LogManager.GetLogger("default");
    }

    public static void Log(string errorMessage, Exception exception)
    {
        defaultLog.Error(errorMessage, exception);
    }
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*gli 7

根据您的描述,我假设您使用了BasicConfigurator(仅支持ConsoleAppender)而不是XmlConfigurator.切换到XmlConfigurator应该可以解决您的问题.

  • 特别是:'*BasicConfigurator.Configure()方法的调用创建了一个相当简单的log4net设置.此方法是硬连线的,以便向根记录器添加ConsoleAppender.输出将使用PatternLayout格式设置为"%-4timestamp [%thread]%-5level%logger%ndc - %message%newline".*'(http://logging.apache.org/log4net/release /manual/configuration.html) (2认同)

Vas*_*kov 6

启用日志记录有两个主要选项.有关更多详细信息,请参阅配置手册.

  1. 使用 XmlConfigurator.Configure()
  2. 添加[assembly: log4net.Config.XmlConfigurator(Watch=true)]AssemblyInfo.cs

BasicConfigurator.Configure()只能写入控制台.