我在使用日志组件时发现了几个不正常的现象:
1,Info级别的日志不记录.
2,Startup里用loggerFactory.AddDebug();以Release模式运行时,输出窗口和控制台仍会输出logger.LogWarning(xxx)记录信息,将API发布后,控制台里也会有那部分信息.
3,如果是以控制台输出日志,loggerFactory.AddConsole(),会输出2次,重复输出
不知道园里朋友有没有遇到同样的情况,接下来我详细复现一下:
在Startup里开启Debug日志,且没有使用任何日志过的Func<>,也就是说没有让info级别的日志不输出,
另外注意是AddDebug,不是AddConsole
在Controll里注入日志组件
记录日志
以Release模式运行
调试窗口和控制台窗口都有日志输出,且只输出Warn级别的,Info级别没输出
发布后到控制台运行,以AddDebug记录的日志也会输出
下边我们将Startup里的AddDebug()换成AddConsole()
同样以Release运行,会发现每访问一次webapi就有2次日志输出(重复输出)
但调试窗口也有输出,不启用AddDebug()日志
以上这些问题让我有点疑惑,他们没有以正常的方式运作,有高手知道是哪里出了问题吗?
日志级别默认是由 appsettings.json 或 appsettings.development.json 或 appsettings.Production.json 中的 Logging
设置控制的
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
自从 ASP.NET Core 2.0 ,在 Program.cs 中 WebHost.CreateDefaultBuilder(args) 已经默认配置了日志,不需要通过 Startup 配置,如果要修改日志配置,也是在 Program 中,比如
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>
{
logging.SetMinimumLevel(LogLevel.Warning);
})
.UseStartup<Startup>();
@dudu: 完美解决,非常感谢
另外现在博客园提问时,编辑器没有以前好用了,传图需要一张张先保存才能上传,以前好像可以直接粘贴截图
@hexllo: 在“我的博问”右侧“我的设置”->“编辑器设置”中改为“TinyMCE”
你这个说的对!