MCPcopy Create free account
hub / github.com/LLMQuant/quant-mind / setup_logger

Function setup_logger

quantmind/utils/logger.py:80–137  ·  view source on GitHub ↗

Set up a logger with consistent formatting and optional colors. Args: name: Logger name (defaults to 'quantmind') level: Logging level format_string: Custom format string use_color: Whether to use colors (auto-detect if None) file_output: Optional file pa

(
    name: Optional[str] = None,
    level: int = logging.INFO,
    format_string: Optional[str] = None,
    use_color: Optional[bool] = None,
    file_output: Optional[str] = None,
)

Source from the content-addressed store, hash-verified

78
79
80def setup_logger(
81 name: Optional[str] = None,
82 level: int = logging.INFO,
83 format_string: Optional[str] = None,
84 use_color: Optional[bool] = None,
85 file_output: Optional[str] = None,
86) -> logging.Logger:
87 """Set up a logger with consistent formatting and optional colors.
88
89 Args:
90 name: Logger name (defaults to 'quantmind')
91 level: Logging level
92 format_string: Custom format string
93 use_color: Whether to use colors (auto-detect if None)
94 file_output: Optional file path for file logging
95
96 Returns:
97 Configured logger instance
98 """
99 if name is None:
100 name = "quantmind"
101
102 if format_string is None:
103 format_string = "[%(asctime)s %(levelname)-8s %(name)s %(filename)s:%(lineno)d] %(message)s"
104
105 logger = logging.getLogger(name)
106
107 # Only configure if not already configured
108 if not logger.handlers:
109 logger.setLevel(level)
110
111 # Create console handler
112 console_handler = logging.StreamHandler(sys.stdout)
113 console_handler.setLevel(level)
114
115 # Create colored formatter for console
116 console_formatter = ColoredFormatter(
117 format_string, datefmt="%Y-%m-%d %H:%M:%S", use_color=use_color
118 )
119 console_handler.setFormatter(console_formatter)
120 logger.addHandler(console_handler)
121
122 # Add file handler if requested
123 if file_output:
124 file_handler = logging.FileHandler(file_output)
125 file_handler.setLevel(level)
126
127 # File output should not have colors
128 file_formatter = logging.Formatter(
129 format_string, datefmt="%Y-%m-%d %H:%M:%S"
130 )
131 file_handler.setFormatter(file_formatter)
132 logger.addHandler(file_handler)
133
134 # Prevent propagation to root logger
135 logger.propagate = False
136
137 return logger

Callers 3

get_loggerFunction · 0.85
configure_loggingFunction · 0.85
logger.pyFile · 0.85

Calls 1

ColoredFormatterClass · 0.85

Tested by

no test coverage detected