将NLog提供程序添加到ILoggerFactory

时间:2015-01-29 15:07:26

标签: dependency-injection nlog asp.net-core

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

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提供程序的正确方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

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适配器中具有实际NLog依赖关系的project.json文件的相关部分:

{
    "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团队未正式发布适配器,因此您需要自己获取源代码并使用它。 / p>