【问题标题】:How to get a usable ${callsite} using nlog and asp.net core rc2如何使用 nlog 和 asp.net core rc2 获取可用的 ${callsite}
【发布时间】:2016-06-20 20:09:57
【问题描述】:

我将 NLog 与 asp.net core rc2 一起使用。 (“NLog.Extensions.Logging”:“1.0.0-rc2-final-2016-05-21”)我很难使用布局中的 ${callsite} 标签获取日志事件的位置。我更喜欢在消息中输入它,因为我想将它呈现到它自己的数据库列中。

我的创业公司是这样的:

        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        loggerFactory.AddNLog();
        env.ConfigureNLog("NLog.config");

我的 NLog 配置:

<target xsi:type="File" name="infolog" fileName="${basedir}/logs/info-${shortdate}.log"
        layout="${longdate}|${level}|${callsite:className=true:methodName=true}|${machinename}|${message}" />

这样称呼:

Logger.LogInformation("Information: User > Get");

唉,输出总是:

2016-06-20 16:00:03.4458|Info|Microsoft.Extensions.Logging.Logger.Log ...

有没有办法使用 Microsoft 日志记录扩展和 NLog 来获取写入日志的类/方法名称?

【问题讨论】:

    标签: asp.net-core-mvc nlog


    【解决方案1】:

    我刚刚在使用 Owin + NLog 时遇到了这个问题,我发现你需要告诉 NLog “ignore”那些日志记录包装器,这可以通过使用来完成LogManager.AddHiddenAssembly,就我而言,我只需将其添加到我的 Startup 类中:

    LogManager.AddHiddenAssembly(typeof(NLogFactory).Assembly);
    LogManager.AddHiddenAssembly(typeof(LoggerExtensions).Assembly);
    

    在你的情况下,我认为应该是:

    LogManager.AddHiddenAssembly(typeof(Microsoft.Extensions.Logging.Logger.Log).Assembly);
    

    我还没有测试过,但它可以为您指明正确的方向。

    希望对你有帮助。

    【讨论】:

    • 这在 GitHub 上被标记为错误。我在LogManager.AddHiddenAssembly(typeof(Microsoft.Extensions.Logging.LoggerFactory).Assembly); 上尝试了各种变体,但都没有运气。
    • @Elton 看起来这个答案解决了 GitHub 问题(github.com/NLog/NLog/issues/1512)中的问题?不是吗?
    • 可能有。我一直在做其他事情,已经有一段时间没有参与那个项​​目了。
    【解决方案2】:

    我有一个解决方案。 将包更新到最新的 1.0.0-rtm-alpha3

    检查依赖关系。如果您看到 4.3.4,则需要对其进行调整。

    1. 找到包 .nuspec 文件。

    1. 在记事本中打开文件。
    2. 编辑文件,将 NLog 版本更改为 4.3.5

    3. 恢复包。这将更新您项目中的依赖项。现在应该可以正常工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-16
      • 2016-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多