52 lines
1.3 KiB
Python
52 lines
1.3 KiB
Python
"""
|
|
logger.py — Project-wide logging via Logger.py
|
|
"""
|
|
import os
|
|
from Core.env_loader import PROJECT_ROOT
|
|
from Core.Logger import Logs
|
|
|
|
# Single shared instance — all modules use this
|
|
_logs = Logs(main_log_file=os.path.join(PROJECT_ROOT, "logs", "main.log"))
|
|
|
|
# Pre-configured module loggers
|
|
_engines = {}
|
|
|
|
|
|
def get_logger(module_name: str) -> Logs:
|
|
"""
|
|
Get a logger configured for a specific module.
|
|
Logs go to logs/{module_name}.log
|
|
|
|
Usage:
|
|
from Core.logger import get_logger
|
|
log = get_logger("brain")
|
|
log.LogsMessages("Marcus started", "info")
|
|
"""
|
|
if module_name not in _engines:
|
|
_logs.LogEngine(
|
|
os.path.join(PROJECT_ROOT, "logs"),
|
|
f"{module_name}.log"
|
|
)
|
|
_engines[module_name] = _logs
|
|
return _logs
|
|
|
|
|
|
def log(message: str, level: str = "info", module: str = "main"):
|
|
"""Quick log function — no setup needed."""
|
|
_logs.LogsMessages(
|
|
message,
|
|
message_type=level,
|
|
folder_name=os.path.join(PROJECT_ROOT, "logs"),
|
|
file_name=f"{module}.log"
|
|
)
|
|
|
|
|
|
def log_and_print(message: str, level: str = "info", module: str = "main"):
|
|
"""Log to file AND print to console."""
|
|
_logs.print_and_log(
|
|
message,
|
|
message_type=level,
|
|
folder_name=os.path.join(PROJECT_ROOT, "logs"),
|
|
file_name=f"{module}.log"
|
|
)
|