【发布时间】:2021-12-16 06:36:24
【问题描述】:
我正在使用 Django watchtower 将事件记录到 Cloudwatch,并在我的设置文件中配置了我的日志记录。
development.py
boto3_session = Session(
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
region_name=AWS_REGION)
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
# 'root': {
# 'level': 'INFO',
# 'handlers': ['console'],
# },
'formatters': {
'simple': {
'format': "%(asctime)s [%(levelname)-8s] %(message)s",
'datefmt': "%Y-%m-%d %H:%M:%S"
},
'aws': {
# you can add specific format for aws here
'format': "%(asctime)s [%(levelname)-8s] %(message)s",
'datefmt': "%Y-%m-%d %H:%M:%S"
},
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
'watchtower': {
'level': 'INFO',
'class': 'watchtower.CloudWatchLogHandler',
'boto3_session': boto3_session,
'log_group': 'StagingBeagleApi',
'stream_name': 'ApplicationLogStream',
'formatter': 'aws',
},
},
'loggers': {
'django': {
'level': 'INFO',
'handlers': ['watchtower'],
'propagate': True,
},
},
}
但是,当我运行我的服务器时,我在控制台中没有收到任何错误,但我的网站无法再通过 locahost:3000 访问,我收到了 ERR_CONNECTION_REFUSED
请帮忙!
更新
如果我用watchtower 替换django 键,它就可以工作。但是,我想将所有 Django 日志放到 Cloudwatch 中,并且我按照记录器键为 django 的文档进行操作。
【问题讨论】:
-
aws 用户是否有权在 cloudwatch 上写入日志?另外,你为什么在日志配置中注释掉
root?包含两个处理程序的根配置并进行测试。 -
是的,它具有写入 CloudWatch 的正确权限。我在有和没有 root 的情况下进行了测试,但仍然无法正常工作(因为在 localhost 中仍然无法访问)
-
基于here,瞭望塔不需要
boto3_session,而是需要boto3_client。 -
这似乎不是问题,我有其他处理程序有
boto3_session。该问题似乎仅在django记录器的开发中发生。 -
遇到同样的问题。
标签: python django watchtower