log4net包装器中的错误文件和行

时间:2013-02-13 11:28:50

标签: c# log4net wrapper

我写了一个log4net包装器

public class Log4NetWrapper : ILogger
{
    private readonly log4net.ILog logger;

    public Log4NetWrapper(string loggerName)
    {
        logger = log4net.LogManager.GetLogger(loggerName);
    }

    public void Debug(string message, params object[] values)
    {
        logger.DebugFormat(message, values);
    }


    public bool IsDebugEnabled {get { return logger.IsDebugEnabled; } }

    ...

}

问题是我记录的行和文件是包装器而不是消息的实际位置。

1 个答案:

答案 0 :(得分:2)

这是设计的,如果你对行和文件感兴趣,首先应该记录异常对象或其stacktrace成员,如果你已经配置了log4net文件appender来显示文件和行在写入消息的地方,您可以找到包装器,但在记录异常和堆栈跟踪时,您会找到正确的内容。

在我们的appender中我们有以下内容,因此我们甚至不显示包装类名称或文件/行...

<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
    <threshold value="ALL"/>
    <immediateFlush>true</immediateFlush>
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
    <encoding value="utf-8"/>
    <file value="D:\Axis\RPP\Logs\myLogFile.log" />
    <appendToFile value="true"/>
    <rollingStyle value="Date" />
    <maxSizeRollBackups value="30" />
    <maximumFileSize value="25MB" />
    <staticLogFileName value="true"/>
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[%property{log4net:HostName}] - %username%newline%utcdate - %-5level - %message%newline"/>
    </layout>
</appender>

<root>
    <priority value="ALL"/>
    <appender-ref ref="FileAppender"/>
</root>