{
  "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"
    }
  },

  "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"
    }
  },

  "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
    }
  }
}
