依赖注入 – 将NLog提供程序添加到ILoggerFactory

我正在尝试将NLog作为提供程序添加到我的startup.cs文件中的记录器工厂,但我似乎无法添加它.我见过的所有例子都是这样的:

loggerFactory.AddNLog(new global::NLog.LogFactory());

我在用 :

"Microsoft.Framework.Logging": "1.0.0-beta2"

从我在github示例等中可以看出,这不再存在:

"Microsoft.Framework.Logging.NLog": "1.0.0-*"

所以我想知道它被替换为什么(“”NLog“:”3.2.0.0“?),在我的启动文件中添加NLog提供程序的正确方法是什么?

谢谢!

最佳答案 ASP.NET GitHub存储库中有一个日志示例,显示如何使用NLog:
https://github.com/aspnet/Logging/tree/dev/samples/SampleApp

该示例使用此处的示例NLog日志记录适配器:https://github.com/aspnet/Logging/tree/dev/src/Microsoft.Framework.Logging.NLog

这是应用程序中的project.json文件:https://github.com/aspnet/Logging/blob/dev/samples/SampleApp/project.json

{
    "dependencies": {
        "Microsoft.Framework.Logging": "1.0.0-*",
        "Microsoft.Framework.Logging.Console": "1.0.0-*"
    },
    "frameworks": {
        "aspnet50": {
            "dependencies": {
                "Microsoft.Framework.Logging.NLog": "1.0.0-*"
            }
        },
        "aspnetcore50": {
            "dependencies": {
                "System.Console": "4.0.0-beta-*"
            }
        }
    }
}

以下是来自示例NLog适配器的project.json文件的相关部分,其中包含实际的NLog依赖项:

{
    "version": "1.0.0-*",
    "dependencies": {
        "Microsoft.Framework.Logging": "1.0.0-*",
        "NLog": "3.1.0"
    },
    "frameworks": {
        "net45": { },
        "aspnet50": { }
    }
}

请注意,目前NLog仅适用于aspnet50(.NET 4.x),而不适用于aspnetcore50(Core CLR).

另请注意,由于NLog适配器是一个示例,ASP.NET团队没有正式发布适配器,因此您需要自己获取源代码并使用它.

点赞