我的log4net包装有什么问题?

时间:2018-02-24 20:02:20

标签: .net-core log4net

我已经为log4net做了一个包装器,但它有一个非常特殊的行为。我正在使用NET Core 2并且在我的测试类中,只有当我从记录器内部向记录器添加另一个调用时,记录器才能工作(请参阅我的代码中的注释)。如果我再次在控制台应用程序中尝试该代码,则不会记录。

这是我的代码:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Logger.configuration.xml", Watch = true)]
namespace MyCreatives.Common.Logging
{
    public static class LoggerAdapter
    {
        public static ILogger Logger = new Logger();

    }
}

internal class Logger : ILogger
    {
        private static ILog _log => LogManager.GetLogger(getClassType());

        #region Log methods

        public void LogDebug(string message, Exception e = null)
        {
            _log.Debug(message, e);
        }

        public void LogError(string message, Exception e = null)
        {
            LoggerAdapter.Logger.LogInfo("info");//if I remove this it won't log
            _log.Error(message, e);
        }

        public void LogFatal(string message, Exception e = null)
        {
            _log.Fatal(message, e);
        }

        public void LogInfo(string message, Exception e = null)
        {
            _log.Info(message, e);
        }

        public void LogWarning(string message, Exception e = null)
        {
            _log.Warn(message, e);
        }

        #endregion
    }

配置文件:

<log4net>

  <root>
    <level value="DEBUG"/>
    <appender-ref ref="RollingFile" />
  </root>

  <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
        <file value="example.log" />
        <appendToFile value="true" />
        <maximumFileSize value="10MB" />
        <maxSizeRollBackups value="2" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%level %thread %logger - %message%newline" />
        </layout>
    </appender>

</log4net>

这里有什么问题,我该如何解决这个问题?

0 个答案:

没有答案