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