gpt4 book ai didi

c# - 在 Azure Function 中处置 NLog

转载 作者:行者123 更新时间:2023-12-03 01:29:40 27 4
gpt4 key购买 nike

我想在 Azure Functions Startup 类中添加 NLog,如下所示:

public class Startup : FunctionsStartup {
public Startup()
{
var logger = NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
}
public override void Configure(IFunctionsHostBuilder builder) {
... other setup code
builder.Services.AddLogging((loggingBuilder) =>
{
loggingBuilder.AddNLog();
});
}
}

根据 Nlog,您应该使用 NLog.LogManager.Shutdown() 手动关闭记录器。如何在Azure Function中处置NLog?

最佳答案

如果我正确理解你的问题,你想在 Azure Function 实例被处置时关闭 NLog。在这种情况下,您可以执行如下操作:

public class Startup : FunctionsStartup {
public Startup()
{
var logger = LogManager.Setup()
.SetupExtensions(e => e.AutoLoadAssemblies(false))
.LoadConfigurationFromFile("nlog.config", optional: false)
.LoadConfiguration(builder => builder.LogFactory.AutoShutdown = false)
.GetCurrentClassLogger();
}

public override void Configure(IFunctionsHostBuilder builder) {
// other setup code
builder.Services.AddLogging((loggingBuilder) =>
{
loggingBuilder.AddNLog(new NLogProviderOptions() { ShutdownOnDispose = true });
});
}
}

现在,NLog 将 Hook Microsoft 扩展日志记录的生命周期(禁用 AutoShutdown 并启用 ShutdownOnDispose)

关于c# - 在 Azure Function 中处置 NLog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63512405/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com