C# asp.net framework 4.7配置日志记录级别,不起作用
我的web作业未遵循My host.json中的日志级别配置。它是使用.NETFramework 4.7编写的。下面代码的预期结果是没有日志记录,相反,我根据下面的屏幕截图获得了日志记录。有什么可以提供关于如何解决这个问题的指导吗?是否需要添加其他配置/启动代码 host.jsonC# asp.net framework 4.7配置日志记录级别,不起作用,c#,asp.net,azure-webjobs,C#,Asp.net,Azure Webjobs,我的web作业未遵循My host.json中的日志级别配置。它是使用.NETFramework 4.7编写的。下面代码的预期结果是没有日志记录,相反,我根据下面的屏幕截图获得了日志记录。有什么可以提供关于如何解决这个问题的指导吗?是否需要添加其他配置/启动代码 host.json { "version": "2.0", "logging": { "fileLoggingMode": "a
{
"version": "2.0",
"logging": {
"fileLoggingMode": "always",
"logLevel": {
"Functions.Test": "None",
"default": "None"
}
}
}
C#网络作业代码
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
变量。因此,不应用这些设置,并使用默认的信息
logLevel
我们需要将此配置提供给
HostBuilder
,看起来可以使用HostBuilder
的ConfigureAppConfiguration
方法完成。请看一看,它有一个如何使用此方法的示例。感谢您提供的信息,不幸的是,我在使用此代码时得到了相同的结果。还有其他想法吗?ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12;var builder=新主机生成器();builder.ConfigureAppConfiguration(cb=>cb/.SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile(“host.json”));一件事是要仔细检查它是否实际找到了host.json
,您可以在AddJsonFile
methodI中指定可选:false
,以确认host.json文件正在打开。以及设置可选:false。您还有其他建议吗?我们可以尝试将host.json
重命名为appsettings.json
,因为ConfigureWebJobs
默认情况下会添加此配置文件。另外,我们可以尝试更改ConfigureWebJobs
和ConfigureAppConfiguration
的顺序,看起来ConfigureWebJobs
应该先执行。请看一下这个问题:如果我添加b.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);行配置日志记录方法,然后获取跟踪级别日志记录。我已确认正在加载host.json文件,因此我的理论是,host.json文件未应用于.net Framework 4.7 web作业,或者host.json文件的格式不正确。有人有什么想法/建议吗?请尝试将fileLoggingMode
设置为never
。参考:不幸的是,这没有什么区别。