首页 新闻 会员 周边

请教几个关于.NetCore日志的问题

0
悬赏园豆:20 [已解决问题] 解决于 2018-09-18 15:27

我在使用日志组件时发现了几个不正常的现象:
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()日志

以上这些问题让我有点疑惑,他们没有以正常的方式运作,有高手知道是哪里出了问题吗?

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2018-09-18 11:10
< >
分享
最佳答案
0

日志级别默认是由 appsettings.json 或 appsettings.development.json 或 appsettings.Production.json 中的 Logging 设置控制的

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  }
}
收获园豆:20
dudu | 高人七级 |园豆:31003 | 2018-09-18 11:28

自从 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 | 园豆:31003 (高人七级) | 2018-09-18 11:32

@dudu: 完美解决,非常感谢

另外现在博客园提问时,编辑器没有以前好用了,传图需要一张张先保存才能上传,以前好像可以直接粘贴截图

hexllo | 园豆:318 (菜鸟二级) | 2018-09-18 15:29

@hexllo: 在“我的博问”右侧“我的设置”->“编辑器设置”中改为“TinyMCE”

dudu | 园豆:31003 (高人七级) | 2018-09-18 15:31

你这个说的对!

-不才- | 园豆:116 (初学一级) | 2019-05-31 11:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册