![](/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.