{
  "version": 1,
  "disable_existing_loggers": false,
  "formatters": {
    "commander": {
      "format": "%(asctime)s - [Crafty] - %(levelname)-8s - %(name)s - %(message)s"
    },
    "tornado_access": {
      "format": "%(asctime)s - [Tornado] - [Access] - %(levelname)s - %(message)s"
    },
    "schedule": {
      "format": "%(asctime)s - [Schedules] - %(levelname)s - %(message)s"
    },
    "auth": {
      "format": "%(asctime)s - [AUTH] - %(levelname)s - %(message)s"
    },
    "audit": {
      "()": "app.classes.logging.log_formatter.JsonFormatter"
    },
    "cmd_queue": {
      "format": "%(asctime)s - [CMD_QUEUE] - %(levelname)s - %(message)s"
    }
  },
  "handlers": {
    "console": {
      "class": "logging.StreamHandler",
      "formatter": "commander",
      "stream": "ext://sys.stdout"
    },
    "main_file_handler": {
      "class": "logging.handlers.RotatingFileHandler",
      "formatter": "commander",
      "filename": "logs/commander.log",
      "maxBytes": 5242880,
      "backupCount": 20,
      "encoding": "utf8"
    },
    "session_file_handler": {
      "class": "logging.handlers.RotatingFileHandler",
      "formatter": "commander",
      "filename": "logs/session.log",
      "backupCount": 0,
      "encoding": "utf8"
    },
    "tornado_access_file_handler": {
      "class": "logging.handlers.RotatingFileHandler",
      "formatter": "tornado_access",
      "filename": "logs/tornado-access.log",
      "maxBytes": 10485760,
      "backupCount": 20,
      "encoding": "utf8"
    },
    "schedule_file_handler": {
      "class": "logging.handlers.RotatingFileHandler",
      "formatter": "schedule",
      "filename": "logs/schedule.log",
      "maxBytes": 10485760,
      "backupCount": 20,
      "encoding": "utf8"
    },
    "auth_file_handler": {
      "class": "logging.handlers.RotatingFileHandler",
      "formatter": "auth",
      "filename": "logs/auth.log",
      "maxBytes": 10485760,
      "backupCount": 20,
      "encoding": "utf8"
    },
    "cmd_queue_file_handler": {
      "class": "logging.handlers.RotatingFileHandler",
      "formatter": "auth",
      "filename": "logs/cmd_queue.log",
      "maxBytes": 10485760,
      "backupCount": 20,
      "encoding": "utf8"
    },
    "audit_log_handler": {
      "class": "logging.handlers.RotatingFileHandler",
      "formatter": "audit",
      "filename": "logs/audit.log",
      "maxBytes": 10485760,
      "backupCount": 20,
      "encoding": "utf8"
    }
  },
  "loggers": {
    "": {
      "level": "INFO",
      "handlers": [
        "main_file_handler",
        "session_file_handler"
      ],
      "propagate": false
    },
    "tornado.access": {
      "level": "INFO",
      "handlers": [
        "tornado_access_file_handler"
      ],
      "propagate": false
    },
    "apscheduler": {
      "level": "INFO",
      "handlers": [
        "schedule_file_handler"
      ],
      "propagate": false
    },
    "auth": {
      "level": "INFO",
      "handlers": [
        "auth_file_handler"
      ],
      "propagate": false
    },
    "cmd_queue": {
      "level": "INFO",
      "handlers": [
        "cmd_queue_file_handler"
      ],
      "propagate": false
    },
    "audit_log": {
      "level": "INFO",
      "handlers": [
        "audit_log_handler"
      ]
    }
  }
}