log4net的文件Appender的不记录文件、log4net、Appender

由网友(余温暖你半世容颜)分享简介:我的FileAppender不能正常工作。这可能不是因为我是本地管理员权限的事情。 我已经启用内部调试,我没有得到任何错误或异常的log4net的。我的配置文件如下。谢谢< log4net的><附加目的地名称=是ConsoleAppenderTYPE =log4net.Appender.Consol...

我的FileAppender不能正常工作。这可能不是因为我是本地管理员权限的事情。

我已经启用内部调试,我没有得到任何错误或异常的log4net的。

我的配置文件如下。 谢谢

 < log4net的>
        <附加目的地名称=是ConsoleAppenderTYPE =log4net.Appender.ConsoleAppender>
            <布局类型=log4net.Layout.PatternLayout>
                < conversionPattern值=%DATE [%线程]%-5level%记录[%NDC]  - %消息%换行/>
            < /布局>
        < /附加器>
        <附加目的地名称=FileAppenderTYPE =log4net.Appender.FileAppender>
            <文件值=C:登录file.txt的/>
            < appendToFile值=真/>
            <布局类型=log4net.Layout.PatternLayout>
                < conversionPattern值=%DATE [%线程]%-5level%记录[%NDC]  - %消息%换行/>
            < /布局>
        < /附加器>
        <根>
            <电平值=DEBUG/>
            <附加目的地-REF REF =是ConsoleAppender/>
            <附加目的地-REF REF =FileAppender/>
        < /根>
    < / log4net的>
 

在code登录是有效的: -

 公共类记录仪
{
    私人静态只读的ILog defaultLog;
    静态记录仪()
    {
        BasicConfigurator.Configure();
        defaultLog = LogManager.GetLogger(默认);
    }

    公共静态无效的日志(字符串的errorMessage,例外的例外)
    {
        defaultLog.Error(的errorMessage,除外);
    }
}
 

解决方案 log4net使用详解

根据您的描述我以为,你所使用的BasicConfigurator(仅支持是ConsoleAppender),而不是XmlConfigurator。切换到XmlConfigurator应该解决您的问题。

my FileAppender isn't working. It probably isn't a permissions thing as I'm local admin.

I've enabled internal debugging and I'm not getting any errors or exceptions from log4net.

My config file is below. Thanks

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

The code to log is effectively:-

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);
    }
}

解决方案

Based on your description I assumed, that you used the BasicConfigurator (supports only ConsoleAppender) instead of the XmlConfigurator. Switching to the XmlConfigurator should fix your problem.

阅读全文

相关推荐

最新文章