* Refactor and extend cleanup tasks for logs and versions - Consolidate API log deletion into cleanup_task.py - Add tasks to delete old email logs, page versions, and issue description versions - Update Celery schedule and imports for new tasks * chore: update cleanup task with mongo changes * fix: update log deletion task name for clarity * fix: enhance MongoDB archival error handling in cleanup task - Added a parameter to check MongoDB availability in the flush_to_mongo_and_delete function. - Implemented error logging for MongoDB archival failures. - Updated calls to flush_to_mongo_and_delete to include the new parameter. * fix: correct parameter name in cleanup task function call - Updated the parameter name from 'mode' to 'model' in the process_cleanup_task function to ensure consistency and clarity in the code. * fix: improve MongoDB connection parameter handling in MongoConnection class - Replaced direct access to settings with getattr for MONGO_DB_URL and MONGO_DB_DATABASE to enhance robustness. - Added warning logging for missing MongoDB connection parameters.
92 lines
2.6 KiB
Python
92 lines
2.6 KiB
Python
"""Production settings"""
|
|
|
|
import os
|
|
|
|
from .common import * # noqa
|
|
|
|
# SECURITY WARNING: don't run with debug turned on in production!
|
|
DEBUG = int(os.environ.get("DEBUG", 0)) == 1
|
|
|
|
# Honor the 'X-Forwarded-Proto' header for request.is_secure()
|
|
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
|
|
|
|
INSTALLED_APPS += ("scout_apm.django",) # noqa
|
|
|
|
|
|
# Scout Settings
|
|
SCOUT_MONITOR = os.environ.get("SCOUT_MONITOR", False)
|
|
SCOUT_KEY = os.environ.get("SCOUT_KEY", "")
|
|
SCOUT_NAME = "Plane"
|
|
|
|
LOG_DIR = os.path.join(BASE_DIR, "logs") # noqa
|
|
|
|
if not os.path.exists(LOG_DIR):
|
|
os.makedirs(LOG_DIR)
|
|
|
|
# Logging configuration
|
|
LOGGING = {
|
|
"version": 1,
|
|
"disable_existing_loggers": True,
|
|
"formatters": {
|
|
"verbose": {
|
|
"format": "%(asctime)s [%(process)d] %(levelname)s %(name)s: %(message)s"
|
|
},
|
|
"json": {
|
|
"()": "pythonjsonlogger.jsonlogger.JsonFormatter",
|
|
"fmt": "%(levelname)s %(asctime)s %(module)s %(name)s %(message)s",
|
|
},
|
|
},
|
|
"handlers": {
|
|
"console": {
|
|
"class": "logging.StreamHandler",
|
|
"formatter": "json",
|
|
"level": "INFO",
|
|
},
|
|
"file": {
|
|
"class": "plane.utils.logging.SizedTimedRotatingFileHandler",
|
|
"filename": (
|
|
os.path.join(BASE_DIR, "logs", "plane-debug.log") # noqa
|
|
if DEBUG
|
|
else os.path.join(BASE_DIR, "logs", "plane-error.log") # noqa
|
|
),
|
|
"when": "s",
|
|
"maxBytes": 1024 * 1024 * 1,
|
|
"interval": 1,
|
|
"backupCount": 5,
|
|
"formatter": "json",
|
|
"level": "DEBUG" if DEBUG else "ERROR",
|
|
},
|
|
},
|
|
"loggers": {
|
|
"plane.api.request": {
|
|
"level": "DEBUG" if DEBUG else "INFO",
|
|
"handlers": ["console"],
|
|
"propagate": False,
|
|
},
|
|
"plane.api": {
|
|
"level": "DEBUG" if DEBUG else "INFO",
|
|
"handlers": ["console"],
|
|
"propagate": False,
|
|
},
|
|
"plane.worker": {
|
|
"level": "DEBUG" if DEBUG else "INFO",
|
|
"handlers": ["console"],
|
|
"propagate": False,
|
|
},
|
|
"plane.exception": {
|
|
"level": "DEBUG" if DEBUG else "ERROR",
|
|
"handlers": ["console", "file"],
|
|
"propagate": False,
|
|
},
|
|
"plane.external": {
|
|
"level": "INFO",
|
|
"handlers": ["console"],
|
|
"propagate": False,
|
|
},
|
|
"plane.mongo": {
|
|
"level": "INFO",
|
|
"handlers": ["console"],
|
|
"propagate": False,
|
|
},
|
|
},
|
|
}
|