python - django频道内的日志消费者没有出现
问题描述
环境:
OS: redhat
python version: 3.6
django: 2.1
django channels: 2.1.3
以下是我的 logging.conf 文件(与 settings.py 级别相同):
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'standard': {
'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S',
},
},
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': 'debug.log',
'formatter': 'standard'
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
},
}
django_logger = logging.getLogger('django')
和记录功能如下:
def log_it(*args):
try:
django_logger.info(str(args).encode('utf-8'))
return True
except:
django_logger.info('#### Exception in LOGGING!!!!!!')
return False
我正在使用它来登录 django 消费者,如下所示:
class EchoConsumer(SyncConsumer):
def websocket_connect(self, event):
try:
log_it('inside EchoConsumer connect()', event)
self.send({
"type": "websocket.accept",
})
return True
except:
error = traceback.format_exc()
write_error_log(error)
return False
def websocket_receive(self, event):
try:
log_it('inside EchoConsumer receive()', event)
self.send({
"type": "websocket.send",
"text": event["text"],
})
return True
except:
error = traceback.format_exc()
write_error_log(error)
return False
消费者内部使用的 log_it() 没有被调用。
(假设:将频道与 django 集成必须覆盖 django 日志记录设置)
我检查了在达芙妮访问日志中联系消费者是否有任何问题。我也检查了我的nginx conf,但是连接请求记录如下:
127.0.0.1:45100 - - [08/Oct/2018:19:00:58] "WSCONNECTING /ws/event/" - -
127.0.0.1:45100 - - [08/Oct/2018:19:00:58] "WSCONNECT /ws/event/" - -
注意:我已在 routing.py 中将 /ws/event 链接到 EchoConsumer
我的期望是:
127.0.0.1:45100 - - [08/Oct/2018:19:00:58] "WSCONNECTING /ws/event/" - -
127.0.0.1:45100 - - [08/Oct/2018:19:00:58] "WSCONNECT /ws/event/" - -
inside EchoConsumer connect() ....
知道为什么不显示日志语句吗?
github上的PS相关问题
解决方案
推荐阅读
- javascript - 如果没有等待并抛出异步函数,调用者代码也应该抛出吗?
- javascript - 编辑消息嵌入的一部分 (Discord.JS)
- ansible - 如何在 ansible playbook 中使用 set_fact 计算算术百分比值
- python - 如何制作左右点击器宏/此代码有什么问题?
- css - 如何覆盖 Docusaurus 样式?
- r - 使用 fct_relevel 排序交互级别
- python - 无法同时在多个 pyqtgraph 图形上显示鼠标位置标记
- vue.js - 打开页面时如何触发对后端的调用-vue?
- animation - 无法在搅拌机动画中添加关键帧
- html - 当我打开我的网站时,它不会在页眉中打开,而是在页脚或网站中间打开