mirror of
https://github.com/ramvignesh-b/pi-ku.git
synced 2026-05-04 19:10:52 +00:00
97 lines
3.0 KiB
Python
97 lines
3.0 KiB
Python
from pathlib import Path
|
|
|
|
import structlog
|
|
|
|
BASE_DIR = Path(__file__).resolve().parent.parent
|
|
LOGS_DIR = BASE_DIR / "logs"
|
|
|
|
LOGS_DIR.mkdir(parents=True, exist_ok=True)
|
|
|
|
structlog.configure(
|
|
processors=[
|
|
structlog.contextvars.merge_contextvars,
|
|
structlog.stdlib.filter_by_level,
|
|
structlog.processors.TimeStamper(fmt="iso"),
|
|
structlog.stdlib.add_logger_name,
|
|
structlog.stdlib.add_log_level,
|
|
structlog.stdlib.PositionalArgumentsFormatter(),
|
|
structlog.processors.StackInfoRenderer(),
|
|
structlog.processors.format_exc_info,
|
|
structlog.processors.UnicodeDecoder(),
|
|
structlog.stdlib.ProcessorFormatter.wrap_for_formatter,
|
|
],
|
|
logger_factory=structlog.stdlib.LoggerFactory(),
|
|
cache_logger_on_first_use=True,
|
|
)
|
|
|
|
LOGGING = {
|
|
"version": 1,
|
|
"disable_existing_loggers": False,
|
|
"formatters": {
|
|
"json_formatter": {
|
|
"()": structlog.stdlib.ProcessorFormatter,
|
|
"processor": structlog.processors.JSONRenderer(),
|
|
},
|
|
"plain_console": {
|
|
"()": structlog.stdlib.ProcessorFormatter,
|
|
"processor": structlog.dev.ConsoleRenderer(colors=True),
|
|
},
|
|
"key_value": {
|
|
"()": structlog.stdlib.ProcessorFormatter,
|
|
"processor": structlog.processors.KeyValueRenderer(key_order=["timestamp", "level", "event", "logger"]),
|
|
},
|
|
},
|
|
"handlers": {
|
|
"console": {
|
|
"class": "logging.StreamHandler",
|
|
"formatter": "plain_console",
|
|
},
|
|
"json_file": {
|
|
"class": "logging.handlers.WatchedFileHandler",
|
|
"filename": LOGS_DIR / "json.log",
|
|
"formatter": "json_formatter",
|
|
},
|
|
"flat_line_file": {
|
|
"class": "logging.handlers.WatchedFileHandler",
|
|
"filename": LOGS_DIR / "flat_line.log",
|
|
"formatter": "key_value",
|
|
},
|
|
"letters_log": {
|
|
"class": "logging.handlers.WatchedFileHandler",
|
|
"filename": LOGS_DIR / "letters.log",
|
|
"formatter": "key_value",
|
|
},
|
|
"scheduler_log": {
|
|
"class": "logging.handlers.WatchedFileHandler",
|
|
"filename": LOGS_DIR / "scheduler.log",
|
|
"formatter": "key_value",
|
|
},
|
|
},
|
|
"loggers": {
|
|
"django_structlog": {
|
|
"handlers": ["console", "flat_line_file", "json_file"],
|
|
"level": "INFO",
|
|
"propagate": False,
|
|
},
|
|
"django.core.mail": {
|
|
"handlers": ["console", "flat_line_file", "json_file"],
|
|
"level": "DEBUG",
|
|
"propagate": False,
|
|
},
|
|
"letters.tasks": {
|
|
"handlers": ["console", "scheduler_log"],
|
|
"level": "INFO",
|
|
"propagate": False,
|
|
},
|
|
"letters": {
|
|
"handlers": ["console", "flat_line_file", "json_file", "letters_log"],
|
|
"level": "INFO",
|
|
"propagate": False,
|
|
},
|
|
"": {
|
|
"handlers": ["console"],
|
|
"level": "INFO",
|
|
},
|
|
},
|
|
}
|