MCPcopy
hub / github.com/GetBindu/Bindu / configure_logger

Function configure_logger

bindu/utils/logging.py:49–100  ·  view source on GitHub ↗

Configure loguru logger with Rich integration. Args: docker_mode: Optimize for Docker environment (no file logging) log_level: Minimum log level (uses settings default if not provided)

(
    docker_mode: bool = False,
    log_level: Optional[str] = None,
)

Source from the content-addressed store, hash-verified

47
48
49def configure_logger(
50 docker_mode: bool = False,
51 log_level: Optional[str] = None,
52) -> None:
53 """Configure loguru logger with Rich integration.
54
55 Args:
56 docker_mode: Optimize for Docker environment (no file logging)
57 log_level: Minimum log level (uses settings default if not provided)
58 """
59 global _is_logging_configured
60
61 if _is_logging_configured:
62 return
63
64 logger.remove()
65 console = _get_console()
66
67 # Use settings default if log_level not provided
68 level = log_level or app_settings.logging.default_level
69
70 # File logging (skip in Docker mode for performance)
71 if not docker_mode:
72 log_dir = Path(app_settings.logging.log_dir)
73 log_file = log_dir / app_settings.logging.log_filename
74 log_dir.mkdir(exist_ok=True)
75
76 logger.add(
77 log_file,
78 rotation=app_settings.logging.log_rotation,
79 retention=app_settings.logging.log_retention,
80 level=level,
81 format=app_settings.logging.log_format,
82 enqueue=True, # Async logging for better performance
83 backtrace=True,
84 diagnose=True,
85 )
86
87 # Rich console handler
88 logger.add(
89 RichHandler(
90 console=console,
91 rich_tracebacks=True,
92 markup=True,
93 log_time_format="[%X]",
94 show_path=False, # Cleaner output
95 ),
96 format="{message}",
97 level=level,
98 )
99
100 _is_logging_configured = True
101
102
103def get_logger(name: Optional[str] = None):

Calls 1

_get_consoleFunction · 0.85