[英]How to shutdown NLog logging in an Azure Function?
當 Azure Functions 實例化我的程序集時,我需要設置 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 的實例來關閉我的程序集。
Azure 是否公開了某種我沒有看到的 Dispose 事件?
看起來您依賴於 Microsoft 擴展日志記錄,所以我可能會掛鈎它的生命周期邏輯(禁用AutoShutdown
並啟用ShutdownOnDispose
)
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 });
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.