- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 Python 3 应用程序使用标准日志记录包。我想记录我的代码中的所有信息级消息,但要确保记录忽略第三方包(如请求)发出的所有信息消息。
每次使用 requests.get 之前和之后调用 Logger.setLevel(lvl) 应该可以,但是非常乏味。我想我可以使用装饰器,但有更简单的方法吗?
最佳答案
记录器可以通过它们的点模块名称来识别。如果 loggers are set up correctly,您可以在各个模块中打开和关闭记录器.
高级日志配置示例,不同包具有不同的日志级别:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
'request_format': {
'format': '%(levelname)s %(asctime)s %(module)s %(remote_addr)s %(username)s %(request_method)s '
'%(path_info)s %(server_protocol)s" %(http_user_agent)s '
'%(message)s',
},
},
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
},
# Add an unbound RequestFilter.
'request': {
'()': 'django_requestlogging.logging_filters.RequestFilter',
},
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'simple',
'stream': sys.stdout
},
'rainbow': {
"level": "DEBUG",
"class": "rainbow_logging_handler.RainbowLoggingHandler",
"stream": sys.stderr
},
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filters': ['request'],
'filename': 'logs/django.log',
'formatter': 'request_format',
},
'sentry': {
'level': 'WARN',
'class': PRODUCTION and 'raven.contrib.django.raven_compat.handlers.SentryHandler' or 'logging.StreamHandler',
},
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
'django.db.backends': {
'handlers': [],
'level': 'ERROR',
'propagate': True,
},
'sqlalchemy': {
'level': 'ERROR',
'propagate': False,
},
'py.warnings': {
'level': 'ERROR',
'propagate': False,
},
'': {
'level': PRODUCTION and 'WARN' or 'DEBUG',
'handlers': [PRODUCTION and 'sentry' or 'rainbow', 'file'],
},
}
}
关于python - 在 Python 中忽略来自第三方包的日志消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31838187/
我想知道是否有一种方法可以自动下载所有导入。因此,假设我需要在我的代码库中使用 github.com/gorilla/mux 和其他几个包。我应该手动转到我的 ~/go/src 并运行 go get
如果我添加第 3 方 bundle ,请说来自 Knp bundles例如,我应该先包装它还是应该直接在我的代码中使用它? 如果我决定包装它,我将包装代码放在哪里?在单独的新 bundle 中?在我的
我试图弄清楚这是否是我的设计中的错误,或者是 redis-py 库中的错误。本质上,我对 Python 中命名空间的理解是,包的设计应该使所有组件都位于包命名空间之下。意思是,如果我在 package
我是 Golang 的新手,在学习这门语言时一直采用 TDD 方法。我一直相处得很好,但我发现测试第三方包非常笨拙,这让我相信我一直在采取错误的方法。 我遇到麻烦的具体情况是模拟 Redis clie
我创建了 Angular 库 ( ngx-wig ),我想提供一种使用插件 来扩展其功能的能力。 在 Angular 中声明插件的最佳位置是什么? (可能类似于 myLibModule.forRoot
我一直在尝试找出如何将我自己的包添加为 kickstart 安装的一部分(特别是 mondo 包),但使用 %packages 指令而不是 post 脚本中的 rpm 命令。我尝试使用 kicksta
我正在尝试在 Node 中使用 d3(并且之前以某种方式成功地完成了?)。所以我就这么做了 npm install -g d3 效果很好。让我们检查一下: $ npm list -g d3 /usr/
美好的一天, 我目前是 webpack 中集成 vue.js 的新手。 基本上,我正在尝试使用已经安装在我的node_modules中的第3方软件包。 在此示例中,我安装了一个名为“Vuex Toas
我是一名优秀的程序员,十分优秀!