Skip to content

Commit 1280210

Browse files
committed
fix: send INFO/DEBUG to stdout, WARNING/ERROR to stderr
Fixes #182
1 parent 8b7512c commit 1280210

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

bin/github-backup

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,23 @@ from github_backup.github_backup import (
1616
retrieve_repositories,
1717
)
1818

19-
logging.basicConfig(
20-
format="%(asctime)s.%(msecs)03d: %(message)s",
19+
# INFO and DEBUG go to stdout, WARNING and above go to stderr
20+
log_format = logging.Formatter(
21+
fmt="%(asctime)s.%(msecs)03d: %(message)s",
2122
datefmt="%Y-%m-%dT%H:%M:%S",
22-
level=logging.INFO,
2323
)
2424

25+
stdout_handler = logging.StreamHandler(sys.stdout)
26+
stdout_handler.setLevel(logging.DEBUG)
27+
stdout_handler.addFilter(lambda r: r.levelno < logging.WARNING)
28+
stdout_handler.setFormatter(log_format)
29+
30+
stderr_handler = logging.StreamHandler(sys.stderr)
31+
stderr_handler.setLevel(logging.WARNING)
32+
stderr_handler.setFormatter(log_format)
33+
34+
logging.basicConfig(level=logging.INFO, handlers=[stdout_handler, stderr_handler])
35+
2536

2637
def main():
2738
args = parse_args()

0 commit comments

Comments
 (0)