From 12802103c470402c0ceccbbb1d8b767bd4ffcc82 Mon Sep 17 00:00:00 2001 From: Rodos Date: Mon, 1 Dec 2025 16:11:11 +1100 Subject: [PATCH] fix: send INFO/DEBUG to stdout, WARNING/ERROR to stderr Fixes #182 --- bin/github-backup | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/bin/github-backup b/bin/github-backup index b33d19ff..d685bc90 100755 --- a/bin/github-backup +++ b/bin/github-backup @@ -16,12 +16,23 @@ from github_backup.github_backup import ( retrieve_repositories, ) -logging.basicConfig( - format="%(asctime)s.%(msecs)03d: %(message)s", +# INFO and DEBUG go to stdout, WARNING and above go to stderr +log_format = logging.Formatter( + fmt="%(asctime)s.%(msecs)03d: %(message)s", datefmt="%Y-%m-%dT%H:%M:%S", - level=logging.INFO, ) +stdout_handler = logging.StreamHandler(sys.stdout) +stdout_handler.setLevel(logging.DEBUG) +stdout_handler.addFilter(lambda r: r.levelno < logging.WARNING) +stdout_handler.setFormatter(log_format) + +stderr_handler = logging.StreamHandler(sys.stderr) +stderr_handler.setLevel(logging.WARNING) +stderr_handler.setFormatter(log_format) + +logging.basicConfig(level=logging.INFO, handlers=[stdout_handler, stderr_handler]) + def main(): args = parse_args()