Skip to content

Commit f0ee47d

Browse files
saucoidesauco
authored andcommitted
ensure there are no duplicate log handlers
1 parent ddd05e8 commit f0ee47d

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

nox/logger.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,20 @@ def setup_logging(
132132
root_logger.setLevel(OUTPUT)
133133
else:
134134
root_logger.setLevel(logging.DEBUG)
135-
handler = logging.StreamHandler()
136135

136+
active_handlers = [
137+
handler
138+
for handler in root_logger.handlers
139+
if handler.get_name() == "nox-stream-handler"
140+
]
141+
for handler in active_handlers:
142+
# Avoid duplicate handlers by removing all we've previously created
143+
# this causes trouble in tests where setup_logging is called multiple
144+
# times
145+
root_logger.removeHandler(handler)
146+
147+
handler = logging.StreamHandler()
148+
handler.set_name("nox-stream-handler")
137149
handler.setFormatter(_get_formatter(color=color, add_timestamp=add_timestamp))
138150
root_logger.addHandler(handler)
139151

0 commit comments

Comments
 (0)