我想从我的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
看起来在消息之前有一些不可读的日期。我该如何删除它?
答案 0 :(得分:1)
你需要为此尝试python。 IPython可能会使用颜色增强日志,而您看到的字符是颜色编码。
在python中运行你的代码,它应该可以工作。