Get a logger instance with QuantMind formatting and optional colors. Args: name: Logger name (usually __name__) level: Optional logging level override use_color: Whether to use colors (auto-detect if None) file_output: Optional file path for file logging Ret
(
name: str,
level: Optional[int] = None,
use_color: Optional[bool] = None,
file_output: Optional[str] = None,
)
| 138 | |
| 139 | |
| 140 | def get_logger( |
| 141 | name: str, |
| 142 | level: Optional[int] = None, |
| 143 | use_color: Optional[bool] = None, |
| 144 | file_output: Optional[str] = None, |
| 145 | ) -> logging.Logger: |
| 146 | """Get a logger instance with QuantMind formatting and optional colors. |
| 147 | |
| 148 | Args: |
| 149 | name: Logger name (usually __name__) |
| 150 | level: Optional logging level override |
| 151 | use_color: Whether to use colors (auto-detect if None) |
| 152 | file_output: Optional file path for file logging |
| 153 | |
| 154 | Returns: |
| 155 | Logger instance |
| 156 | """ |
| 157 | # Extract module name from full path |
| 158 | module_name = name.split(".")[-1] if "." in name else name |
| 159 | logger_name = f"quantmind.{module_name}" |
| 160 | |
| 161 | # Check if logger already exists and is configured |
| 162 | logger = logging.getLogger(logger_name) |
| 163 | if logger.handlers: |
| 164 | return logger |
| 165 | |
| 166 | # Set up new logger with specified options |
| 167 | return setup_logger( |
| 168 | name=logger_name, |
| 169 | level=level or logging.INFO, |
| 170 | use_color=use_color, |
| 171 | file_output=file_output, |
| 172 | ) |
| 173 | |
| 174 | |
| 175 | def configure_logging( |
no test coverage detected