-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlogger.py
More file actions
37 lines (27 loc) · 1.03 KB
/
logger.py
File metadata and controls
37 lines (27 loc) · 1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import logging
logger = logging.getLogger("log_processor")
# Add NullHandler to prevent "No handlers could be found" warnings
logger.addHandler(logging.NullHandler())
def get_logger(name: str = "log_processor") -> logging.Logger:
return logging.getLogger(name)
def setup_default_logging(
level: int = logging.INFO,
log_file: str | None = None,
format_string: str = '%(levelname)s: %(message)s'
) -> None:
"""Configure logging with optional file output.
Args:
level: Logging level (default INFO)
log_file: Path to log file. If None, console only.
format_string: Log format string
"""
formatter = logging.Formatter(format_string)
root_logger = logging.getLogger()
root_logger.setLevel(level)
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
root_logger.addHandler(console_handler)
if log_file:
file_handler = logging.FileHandler(log_file)
file_handler.setFormatter(formatter)
root_logger.addHandler(file_handler)