# 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'], 'level': 'INFO', 'propagate': False }, 'error': { 'handlers': ['consoleHandler', 'errorHandler'], 'level': 'ERROR', 'propagate': False } } }