Dizzy logging — INFO to stderr via rich, DEBUG to JSON file.
setup_logging(log_dir=None, show_level=False, gitignore=True)
Configure the dizzy logger. Called once from main().
Source code in dizzy/src/dizzy/logger.py
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 | def setup_logging(
log_dir: Path | None = None, show_level: bool = False, gitignore: bool = True
) -> None:
"""Configure the dizzy logger. Called once from main()."""
if log_dir is None:
log_dir = Path.home() / ".local" / "share" / "dizzy" / "logs"
log_dir.mkdir(parents=True, exist_ok=True)
if gitignore:
gi = log_dir / ".gitignore"
if not gi.exists():
gi.write_text("*\n")
root = logging.getLogger("dizzy")
root.setLevel(logging.DEBUG)
rich_handler = RichHandler(
level=logging.INFO, show_path=False, markup=False, show_time=False, show_level=show_level
)
root.addHandler(rich_handler)
log_file = log_dir / f"dizzy_{int(time.time())}_{os.getpid()}.log"
file_handler = logging.FileHandler(log_file)
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(_JsonFormatter())
root.addHandler(file_handler)
|