AWS Cloud Watch无法读取的符号

时间:2017-09-06 16:53:54

标签: django docker amazon-ec2 docker-compose amazon-cloudwatch

我想从我的EC2实例上的docker(来自stdout)获取所有日志。因此,在配置策略和IAM角色后,在我的docker-compose.yml中添加了下一个用于记录的配置:

django:
...
logging:
  driver: "awslogs"
  options:
    awslogs-region: "eu-central-1"
    awslogs-group: "my-group-auto"
    awslogs-stream: "my-stream"
    awslogs-create-group: "true"

Django config:

LOGGING = {
  'version': 1,
  'disable_existing_loggers': True,
  'root': {
     'level': 'ERROR',
     'handlers': ['console'],
  },
  'formatters': {
     'message-only': {
        'format': '%(message)s'
     }
  },
  'handlers': {
     'console': {
        'level': 'DEBUG',
        'class': 'logging.StreamHandler',
        'formatter': 'message-only'
     }
  },
  'loggers': {
     'celery': {
        'level': 'DEBUG',
        'handlers': ['console'],
        'propagate': False,
     }
  }
}

然后我运行python shell并尝试发送一些日志:

In [1]: import logging
In [2]: logger = logging.getLogger('celery')
In [3]: logger.info('info2')
In [4]: logger.info('info22')

但在AWS Cloud Watch上,我在原始日志消息之前获得了带有不可读符号的日志:

16:34:27    [J[?7h[0m[?12l[?25h[?2004linfo2
16:35:23    [J[?7h[0m[?12l[?25h[?2004linfo22

看起来在消息之前有一些不可读的日期。我该如何删除它?

1 个答案:

答案 0 :(得分:1)

你需要为此尝试python。 IPython可能会使用颜色增强日志,而您看到的字符是颜色编码。

在python中运行你的代码,它应该可以工作。