# log conf
import logging
import aliyun
import os
import time
from config import set_config
config_, _ = set_config()
# 本地日志存储路径
log_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "logs")
if not os.path.exists(log_path):
os.makedirs(log_path)
# 文件的命名
log_name = os.path.join(log_path, '{}.log'.format(time.strftime('%Y%m%d')))
conf = {
'version': 1,
'formatters': {
'rawFormatter': {
'class': 'logging.Formatter',
'format': '%(message)s'
},
'simpleFormatter': {
'class': 'logging.Formatter',
'format': '%(asctime)s %(levelname)s: %(message)s'
}
},
'handlers': {
'consoleHandler': {
'()': 'logging.StreamHandler',
'level': 'DEBUG',
'formatter': 'simpleFormatter',
},
'slsHandler': {
'()': 'aliyun.log.QueuedLogHandler',
'level': 'INFO',
'formatter': 'rawFormatter',
# custom args:
'end_point': config_.ALIYUN_LOG.get('ENDPOINT', ''),
'access_key_id': config_.ALIYUN_LOG.get('ACCESSID', ''),
'access_key': config_.ALIYUN_LOG.get('ACCESSKEY', ''),
'project': config_.ALIYUN_LOG.get('PROJECT', ''),
'log_store': "info",
'extract_kv': True,
'extract_json': True
},
'errorHandler': {
'()': 'aliyun.log.QueuedLogHandler',
'level': 'ERROR',
'formatter': 'rawFormatter',
# custom args:
'end_point': config_.ALIYUN_LOG.get('ENDPOINT', ''),
'access_key_id': config_.ALIYUN_LOG.get('ACCESSID', ''),
'access_key': config_.ALIYUN_LOG.get('ACCESSKEY', ''),
'project': config_.ALIYUN_LOG.get('PROJECT', ''),
'log_store': "error",
'extract_kv': True,
'extract_json': True
},
'fileHandler': {
'()': 'logging.FileHandler',
'level': 'INFO',
'formatter': 'simpleFormatter',
'filename': log_name,
'mode': 'a',
'encoding': 'utf-8'
}
},
'loggers': {
'root': {
'handlers': ['consoleHandler', ],
'level': 'DEBUG'
},
'sls': {
'handlers': ['consoleHandler', 'slsHandler', 'fileHandler'],
'level': 'INFO',
'propagate': False
},
'error': {
'handlers': ['consoleHandler', 'errorHandler', 'fileHandler'],
'level': 'ERROR',
'propagate': False
}
}
}