import os
import logging as log
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent.parent

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file_error': {
            'level': 'ERROR',
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'filename': os.path.join(BASE_DIR, 'logs/error.log'),
            'when': 'midnight',
            'interval': 1,
            'backupCount': 30,
            'formatter': 'error-formatter',
        },
        'file_info': {
            'level': 'INFO',
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'filename': os.path.join(BASE_DIR, 'logs/app.log'),
            'formatter': 'info-formatter',
            'when': 'midnight',
            'backupCount': 30,
            'interval': 1,
        },
    },
    'loggers': {
        '': {
            'handlers': ['file_error', 'file_info'],
            'level': 'DEBUG',
        },
    },
    'formatters': {
        'info-formatter': {
            'format': '%(levelname)s - %(asctime)s : %(message)s - [in %(pathname)s:%(lineno)d]',
            'datefmt': '%Y-%m-%d %H:%M',
            'when': 'D'
        },
        'error-formatter': {
            'format': '%(levelname)s - %(asctime)s : {%(module)s} [%(funcName)s] %(message)s- [in %(pathname)s:%(lineno)d]',
            'datefmt': '%Y-%m-%d %H:%M',
            'when': 'D'
        },
        'short': {
            'format': '%(levelname)s : %(message)s'
        }
    },
}