![](/img/trans.png)
[英]Separating application level logging and framework level logging in ASP.NET Core
[英]asp.net framework 4.7 configure logging level, not working
我的 Web 作業不符合我的 host.json 中的日志記錄級別配置。 它是使用 .NET 框架 4.7 編寫的。 下面代碼的預期結果是沒有日志記錄,相反,我根據下面的屏幕截圖記錄了一個。 任何人都可以提供有關如何解決此問題的指導嗎? 我需要添加額外的配置/啟動代碼嗎?
主機文件
{
"version": "2.0",
"logging": {
"fileLoggingMode": "always",
"logLevel": {
"Functions.Test": "None",
"default": "None"
}
}
}
C# Web 作業代碼
public static void Main()
{
var config = new Microsoft.Extensions.Configuration.ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("host.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddTimers();
b.AddBuiltInBindings();
});
builder.ConfigureLogging((context, b) =>
{
b.AddConsole();
});
var host = builder.Build();
using (host)
{
var jobHost = host.Services.GetService(typeof(IJobHost)) as JobHost;
jobHost.CallAsync("Test").GetAwaiter().GetResult();
}
}
}
public class Functions
{
[NoAutomaticTrigger]
public static void Test(ILogger logger)
{
logger.LogCritical("LogCritical");
logger.LogDebug("LogDebug");
logger.LogError("LogError");
logger.LogInformation("LogInformation");
logger.LogTrace("LogTrace");
logger.LogWarning("LogWarning");
Thread.Sleep(1000 * 10);
}
}
}
感謝您分享您的代碼。
在我看來,在第一條語句中,正在構建配置對象var config = new Microsoft.Extensions.Configuration.ConfigurationBuilder()...
,但是,在代碼的后面,在主機創建和配置時不使用此config
變量。 因此,不會應用這些設置,而是使用默認的Information
logLevel。
我們需要將此配置提供給HostBuilder
,看起來可以使用HostBuilder
的ConfigureAppConfiguration
方法來完成。 請看一下這個問題,它有一個如何使用這種方法的例子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.