将 NLog 提供程序添加到 ILoggerFactory

Add NLog provider to 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 团队并未正式发布该适配器,因此您需要获取源代码自己编码并使用它。