python stdout stderr 一起输出_python-Django记录器-将输出正确输出到stdout和stderr

似乎Django记录器默认将stderr用于所有记录级别.

例如,当日志记录设置为:

'version': 1,

'disable_existing_loggers': True,

'formatters': {

'default': {

'format': "%(asctime)s:%(name)s:%(levelname)s:%(message)s"

},

},

'handlers': {

'console': {

'level': 'DEBUG',

'class': 'logging.StreamHandler',

'formatter': 'default',

}

},

'loggers': {

'': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': True,

},

'django': {

'handlers': ['console'],

'level': 'WARNING',

'propagate': False,

},

'appname': {

'handlers': ['console'],

'level': 'WARNING',

'propagate': False,

},

当我将处理程序更改为:

'handlers': {

'console': {

'level': 'DEBUG',

'class': 'logging.StreamHandler',

'formatter': 'default',

'stream': sys.stdout #Notice the change

}

},

然后所有输出都在stdout中.

但是我需要正确的行为:记录信息,调试,对stdout的警告(警告可以以任何一种方式,并不在乎)和异常,错误,这对于stderr至关重要

我在这里想念什么? (一些明显的设置?每个人都知道吗?)谢谢您的帮助!

解决方法:

尝试定义2个处理程序,例如consoleout和consoleerr使用正确的流.

对记录器部分中的每个条目使用正确的处理程序.

标签:logging,python,django

来源: https://codeday.me/bug/20191121/2053315.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值