|
2 | 2 | from pathlib import Path |
3 | 3 |
|
4 | 4 |
|
5 | | -class ConditionalLevelFormatter(logging.Formatter): |
6 | | - def format(self, record): |
7 | | - # For WARNING and above, include "LEVELNAME: message" |
8 | | - if record.levelno >= logging.WARNING: |
9 | | - return f"{record.levelname}: {record.getMessage()}" |
10 | | - # For lower levels like INFO, just return the message |
11 | | - return record.getMessage() |
| 5 | +logging.basicConfig( |
| 6 | + level=logging.INFO, |
| 7 | + format="%(message)s", |
| 8 | +) |
12 | 9 |
|
13 | 10 |
|
14 | 11 | def get_sunbeam_logger() -> logging.Logger: |
15 | | - """Basic logger for general library output.""" |
16 | | - logger = logging.getLogger("sunbeam") |
17 | | - logger.setLevel(logging.INFO) |
| 12 | + return logging.getLogger() |
18 | 13 |
|
19 | | - if not logger.handlers: |
20 | | - ch = logging.StreamHandler() |
21 | | - ch.setLevel(logging.INFO) |
22 | | - ch.setFormatter(ConditionalLevelFormatter()) |
23 | | - logger.addHandler(ch) |
24 | 14 |
|
25 | | - return logger |
26 | | - |
27 | | - |
28 | | -def get_pipeline_logger(log_fp: Path = None) -> logging.Logger: |
29 | | - """Sets up logging for the main pipeline entry point.""" |
30 | | - logger = logging.getLogger("sunbeam.pipeline") |
31 | | - logger.setLevel(logging.DEBUG) |
32 | | - logger.propagate = False |
33 | | - |
34 | | - if not logger.handlers: |
35 | | - # Console handler |
36 | | - ch = logging.StreamHandler() |
37 | | - ch.setLevel(logging.INFO) |
38 | | - ch.setFormatter(ConditionalLevelFormatter()) |
39 | | - |
40 | | - # File handler |
41 | | - if log_fp is None: |
42 | | - raise ValueError( |
43 | | - "log_fp is None but the logger hasn't been initialized with a file handler yet" |
44 | | - ) |
45 | | - fh = logging.FileHandler(log_fp, mode="w") |
46 | | - fh.setLevel(logging.DEBUG) |
47 | | - fh.setFormatter(logging.Formatter("[%(asctime)s] %(levelname)s: %(message)s")) |
48 | | - |
49 | | - logger.addHandler(ch) |
50 | | - logger.addHandler(fh) |
51 | | - |
52 | | - return logger |
53 | | - |
54 | | - |
55 | | -class ExtensionLoggerAdapter(logging.LoggerAdapter): |
56 | | - def process(self, msg, kwargs): |
57 | | - return f"[{self.extra['ext'].upper()}] {msg}", kwargs |
| 15 | +def get_pipeline_logger(log_fp: Path | None = None) -> logging.Logger: |
| 16 | + return logging.getLogger() |
58 | 17 |
|
59 | 18 |
|
60 | 19 | def get_extension_logger(name: str) -> logging.Logger: |
61 | | - """Returns a logger for a specific extension under the pipeline.""" |
62 | | - logger = logging.getLogger(f"sunbeam.pipeline.extensions.{name}") |
63 | | - logger.setLevel(logging.DEBUG) |
64 | | - |
65 | | - # Remove any direct handlers — let it propagate to sunbeam.pipeline |
66 | | - logger.handlers.clear() |
67 | | - logger.propagate = True |
68 | | - |
69 | | - return ExtensionLoggerAdapter(logger, {"ext": name}) |
| 20 | + return logging.getLogger() |
0 commit comments