from distribution import settings

LOGGING_CONFIG = {
    "version": 1,
    "disable_existing_loggers": False,
    "formatters": {
        "simple": {
            "format": "%(asctime)s - %(levelname)s: (%(module)s) %(message)s",
        },
        "syslog": {
            "format": "{}[%(process)d]: %(levelname)s: %(message)s".format(settings.LOGGING_SYSLOG_TAG)
        }
    },
    "handlers": {
        "console": {
            "class": "logging.StreamHandler",
            "formatter": "simple"
        },

        "file": {
            "class": "logging.handlers.RotatingFileHandler",
            "formatter": "simple",
            "filename": settings.LOGGING_FILE_NAME,
            "maxBytes": 10485760,
            "backupCount": 20,
            "encoding": "utf8"
        },
        "syslog": {
            "class": "logging.handlers.SysLogHandler",
            "formatter": "syslog",
            "facility": "local3"
        },
    },
    "loggers": {
        "distribution": {
            "level": settings.LOGGING_LEVEL,
            "handlers": settings.LOGGING_HANDLERS,
            "propagate": False
        },
        "werkzeug": {
            "level": settings.LOGGING_LEVEL,
            "handlers": settings.LOGGING_HANDLERS,
            "propagate": False
        }
    }
}

sentry_dsn = getattr(settings, 'SENTRY_DSN', None)
if sentry_dsn:
    LOGGING_CONFIG['handlers']['sentry'] = {
        'level': 'WARNING',
        'class': 'raven.handlers.logging.SentryHandler',
        'dsn': sentry_dsn,
    }
