diff --git a/backend/logger/formatter.py b/backend/logger/formatter.py index 85d65dcce..4c7652937 100644 --- a/backend/logger/formatter.py +++ b/backend/logger/formatter.py @@ -15,6 +15,9 @@ LIGHTMAGENTA = Fore.LIGHTMAGENTA_EX RESET = Fore.RESET RESET_ALL = Style.RESET_ALL +common_log_format = f"{GREEN}INFO{RESET}:\t {BLUE}[RomM]{LIGHTMAGENTA}[worker]{CYAN}[%(asctime)s] {RESET_ALL}%(message)s" +common_date_format = "%Y-%m-%d %H:%M:%S" + def should_strip_ansi() -> bool: """Determine if ANSI escape codes should be stripped.""" @@ -74,7 +77,7 @@ class Formatter(logging.Formatter): logging.CRITICAL: f"{RED}{level}{dots}{identifier_critical}{date}{msg}", } log_fmt = formats.get(record.levelno) - formatter = logging.Formatter(fmt=log_fmt, datefmt="%Y-%m-%d %H:%M:%S") + formatter = logging.Formatter(fmt=log_fmt, datefmt=common_date_format) return formatter.format(record) diff --git a/backend/logger/logger.py b/backend/logger/logger.py index b437b2657..c63189366 100644 --- a/backend/logger/logger.py +++ b/backend/logger/logger.py @@ -9,9 +9,10 @@ log = logging.getLogger("romm") log.setLevel(LOGLEVEL) # Define stdout handler -stdout_handler = logging.StreamHandler(sys.stdout) -stdout_handler.setFormatter(Formatter()) -log.addHandler(stdout_handler) +if not log.hasHandlers(): + stdout_handler = logging.StreamHandler(sys.stdout) + stdout_handler.setFormatter(Formatter()) + log.addHandler(stdout_handler) # Hush passlib warnings logging.getLogger("passlib").setLevel(logging.ERROR) diff --git a/backend/scheduler.py b/backend/scheduler.py index 6d7b5eaaf..ec9385abd 100644 --- a/backend/scheduler.py +++ b/backend/scheduler.py @@ -1,12 +1,10 @@ -import logging - import sentry_sdk from config import ( ENABLE_SCHEDULED_RESCAN, ENABLE_SCHEDULED_UPDATE_SWITCH_TITLEDB, SENTRY_DSN, ) -from logger.formatter import BLUE, CYAN, GREEN, LIGHTMAGENTA, RESET, RESET_ALL +from logger.logger import log from tasks.scan_library import scan_library_task from tasks.tasks import tasks_scheduler from tasks.update_switch_titledb import update_switch_titledb_task @@ -14,15 +12,13 @@ from utils import get_version sentry_sdk.init(dsn=SENTRY_DSN, release=f"romm@{get_version()}") -# Set up custom logging -log_format = f"{GREEN}INFO{RESET}:\t {BLUE}[RomM]{LIGHTMAGENTA}[%(module)s]{CYAN}[%(asctime)s] {RESET_ALL}%(message)s" -logging.basicConfig(format=log_format, datefmt="%Y-%m-%d %H:%M:%S") - if __name__ == "__main__": # Initialize the tasks if ENABLE_SCHEDULED_RESCAN: + log.info("Starting scheduled rescan") scan_library_task.init() if ENABLE_SCHEDULED_UPDATE_SWITCH_TITLEDB: + log.info("Starting scheduled update switch titledb") update_switch_titledb_task.init() # Start the scheduler tasks_scheduler.run() diff --git a/backend/watcher.py b/backend/watcher.py index 0de678eed..7c18f4c56 100644 --- a/backend/watcher.py +++ b/backend/watcher.py @@ -1,4 +1,3 @@ -import logging import os from datetime import timedelta @@ -13,7 +12,6 @@ from config.config_manager import config_manager as cm from endpoints.sockets.scan import scan_platforms from handler.database import db_platform_handler from handler.scan_handler import ScanType -from logger.formatter import BLUE, CYAN, GREEN, LIGHTMAGENTA, RESET, RESET_ALL from logger.logger import log from rq.job import Job from tasks.tasks import tasks_scheduler @@ -23,7 +21,7 @@ from watchdog.observers import Observer sentry_sdk.init( dsn=SENTRY_DSN, - release="romm@" + get_version(), + release=f"romm@{get_version()}", ) path = ( @@ -32,10 +30,6 @@ path = ( else LIBRARY_BASE_PATH ) -# Set up custom logging -log_format = f"{GREEN}INFO{RESET}:\t {BLUE}[RomM]{LIGHTMAGENTA}[%(module)s]{CYAN}[%(asctime)s] {RESET_ALL}%(message)s" -logging.basicConfig(format=log_format, datefmt="%Y-%m-%d %H:%M:%S") - class EventHandler(FileSystemEventHandler): """Filesystem event handler""" diff --git a/backend/worker.py b/backend/worker.py index b31512b0e..d890e54a3 100644 --- a/backend/worker.py +++ b/backend/worker.py @@ -3,7 +3,7 @@ import logging import sentry_sdk from config import SENTRY_DSN from handler.redis_handler import redis_client -from logger.formatter import BLUE, CYAN, GREEN, LIGHTMAGENTA, RESET, RESET_ALL +from logger.formatter import common_date_format, common_log_format from rq import Queue, Worker from utils import get_version @@ -14,9 +14,8 @@ sentry_sdk.init( release=f"romm@{get_version()}", ) -# Set up custom logging -log_format = f"{GREEN}INFO{RESET}:\t {BLUE}[RomM]{LIGHTMAGENTA}[%(module)s]{CYAN}[%(asctime)s] {RESET_ALL}%(message)s" -logging.basicConfig(format=log_format, datefmt="%Y-%m-%d %H:%M:%S") +# Set up custom logging for Worker logging +logging.basicConfig(format=common_log_format, datefmt=common_date_format) if __name__ == "__main__": # Start the worker diff --git a/docker/nginx/default.conf b/docker/nginx/default.conf index d27fa1924..5e554f9c5 100644 --- a/docker/nginx/default.conf +++ b/docker/nginx/default.conf @@ -64,7 +64,7 @@ http { #INFO: [nginx][2023-11-14 09:20:29] 127.0.0.1 - -"GET / HTTP/1.1" 500 177 "-" "Mozilla/5.0 (X11; Linux x86_64)"rt=0.000 uct="-" uht="-" urt="-" log_format romm_logs 'INFO: [RomM][nginx][$date $time] $remote_addr | $http_x_forwarded_for | ' - '$request_method $server_protocol $request_uri $status $body_bytes_sent | ' + '$request_method $request_uri | $status | $body_bytes_sent | ' '$browser $os | $request_time'; access_log /dev/stdout romm_logs;