Skip to content

Commit 82bcef6

Browse files
Fix logging output routing
Changed logging so normal messages go to stdout and errors go to stderr. This makes it much easier to pipe script output. Fixes #205
1 parent 8755a20 commit 82bcef6

1 file changed

Lines changed: 27 additions & 8 deletions

File tree

scripts/shared.py

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Standard library
22
import logging
33
import os
4+
import sys
45
from datetime import datetime, timezone
56

67
# Third-party
@@ -115,10 +116,28 @@ def paths_update(logger, paths, old_quarter, new_quarter):
115116

116117
def setup(current_file):
117118
# Set up logging
118-
logging.basicConfig(
119-
level=logging.INFO,
120-
format="%(asctime)s - %(levelname)s - %(module)s - %(message)s",
119+
root = logging.getLogger()
120+
root.handlers.clear()
121+
root.setLevel(logging.INFO)
122+
123+
formatter = logging.Formatter(
124+
"%(asctime)s - %(levelname)s - %(module)s - %(message)s"
121125
)
126+
127+
# Info/warning to stdout
128+
stdout_handler = logging.StreamHandler(sys.stdout)
129+
stdout_handler.setLevel(logging.DEBUG)
130+
stdout_handler.setFormatter(formatter)
131+
stdout_handler.addFilter(lambda r: r.levelno < logging.ERROR)
132+
133+
# Errors to stderr
134+
stderr_handler = logging.StreamHandler(sys.stderr)
135+
stderr_handler.setLevel(logging.ERROR)
136+
stderr_handler.setFormatter(formatter)
137+
138+
root.addHandler(stdout_handler)
139+
root.addHandler(stderr_handler)
140+
122141
logger = logging.getLogger(__name__)
123142

124143
# Datetime
@@ -220,11 +239,11 @@ def update_readme(
220239
entry_start_index = lines.index(entry_start_line)
221240
entry_end_index = lines.index(entry_end_line)
222241
# Include any trailing empty/whitespace-only lines
223-
while entry_end_index + 1 < len(lines):
224-
if not lines[entry_end_index + 1].strip():
225-
entry_end_index += 1
226-
else:
227-
break
242+
while (
243+
entry_end_index + 1 < len(lines)
244+
and not lines[entry_end_index + 1].strip()
245+
):
246+
entry_end_index += 1
228247
# Initalize variables of entry is not present
229248
else:
230249
entry_start_index = None

0 commit comments

Comments
 (0)