6

我正在使用 Django watchtower将事件记录到 Cloudwatch,并在我的设置文件中配置了我的日志记录。

开发.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

请帮忙!

更新

如果我django用它替换钥匙watchtower就可以了。但是,我想将所有 Django 日志放入 Cloudwatch 中,并且我遵循了 logger 键为django.

4

1 回答 1

0

您可以在数组 ['watchtower'] 旁边传递另一个值,这可能会解决问题。您可以查看以下代码作为示例。

'loggers': { 'django': { 'level': 'INFO', 'handlers': ['watchtower','django'], 'propagate': True, }, },

于 2021-11-30T08:51:48.477 回答