多个日志记录实现的Nlog问题

时间:2014-02-28 21:21:17

标签: c# nlog

我在我的NLog项目中使用Web API,我遇到了在特定操作序列之后写入错误日志的问题。有一个底层的第三方引用使用它自己的NLog日志记录和配置。所以这是按顺序发生的事情:

  1. 我的应用程序登录我的登录位置A =成功
  2. 底层第三方.dll登录 登录位置B =成功
  3. 我的应用尝试登录位置A ,但内容仍然写入位置B
  4. 我正在使用以下配置:

    <logger name="MyLogger" minlevel="Info,Warn,Error,Debug,Fatal,Trace" levels="Info,Warn,Error,Debug,Fatal,Trace"  writeTo="FileLog" />
    

    在包装器类的构造函数中创建我的记录器后,我有以下(简化)以确保我抓住正确的logger

    private readonly Logger logger;
    public LogException()
    {
        logger = LogManager.GetLogger("MyLogger");           
    }
    

    此外,底层.dll不要求我将它的NLog配置添加到主机app中的`nlog.config'文件。它具有以下配置来解决它的记录器依赖性:

      <ioc type="Common.Container.SimpleDependencyResolver, Common" />
      <container>
        <components>
          <component service="Common.Diagnostics.ILogFactory, Common" type="Diagnostics.NLog.LoggerFactory, Diagnostics.NLog" scope="Transient" />
        </components>
      </container>
    

    当我检查其中的logger工厂时,它指向位置B 的日志文件,而不是我的位置A

    底线是,一旦第二个记录器写入,它就会超过我记录到我的日志的能力,即使我正在通过给定名称来实例化记录器。关于我可能缺少的任何想法,以便后续调用记录到我的日志?

0 个答案:

没有答案