python - 未使用与不同输出关联的不同级别写入调试日志
问题描述
我logging
用来管理我的 Python 代码的日志。我将为每个输出配置两个不同的输出(流和文件)以及特定级别的日志。问题是我的文件中没有写入调试级别,而我声明使用正确的级别......
兆瓦:
import logging
logging.basicConfig(level=logging.INFO)
f = logging.FileHandler('log.log')
f.setLevel(logging.DEBUG)
logging.getLogger().addHandler(f)
logging.info('test')
logging.debug('test debug')
print(logging.getLogger().handlers)
返回[<StreamHandler <stderr> (NOTSET)>, <FileHandler zz/xxx/log.log (DEBUG)>]
解决方案
您曾经basicConfig
将根记录器的级别设置为INFO
. 这意味着只接受级别为INFO
及以上的日志。
您的处理程序具有 levelDEBUG
并附加到具有 level 的根记录器INFO
。所以只会处理级别为INFO
及以上的日志。
不要使用基本配置!您应该使用 level of 显式配置您的记录器DEBUG
并添加 2 个处理程序,一个使用 level 到 stdout,一个使用 levelINFO
到 fileDEBUG
推荐阅读
- sql - 将之前的记录更新为非活动状态
- r - R:基于数据矩阵和阈值数据框创建布尔矩阵
- amazon-web-services - 如何识别 aws cdk 应用程序何时在部署状态下运行?
- ruby-on-rails - Rails 6 has_one through 和多态关联
- python - telegra.ph api 在添加更多内容时显示错误。有没有字数限制
- python-3.x - 使用并行方法而不是顺序循环
- c# - 如何在 ASP.NET Core 中转储解析的 JWT 令牌?
- reactjs - 如何在 axios 拦截器中和 getServerSideProps() 之外访问服务器端 cookie
- firebase - 没有为“FirebaseMessaging”类型定义“配置”方法
- php - Laravel 请求验证仅在用户 id 与记录的相同时才允许