Skip to content

Commit ee405f1

Browse files
authored
Merge pull request #14 from Roman-Supernova-PIT/u/rknop/logger_propagate
default logger to propagate=False to avoid duplicate log messages
2 parents 544bb47 + 26c2b1d commit ee405f1

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

changes/14.feature.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Default to propatage=false in logger.py to avoid duplicate log messages.

snpit_utils/logger.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ def exception( cls, *args, **kwargs ):
178178

179179
def __init__( self, midformat=None, datefmt=_default_datefmt,
180180
show_millisec=_show_millisec, level=_default_log_level,
181-
handler=None ):
181+
handler=None, propagate=False ):
182182
"""Initialize a SNLogger object, and the logging.Logger object it holds.
183183
184184
Parameters
@@ -205,6 +205,15 @@ def __init__( self, midformat=None, datefmt=_default_datefmt,
205205
If you want it to go somewhere else, create an approprite
206206
logging.Handler subclass and pass it here.
207207
208+
propagate : book, default False
209+
cf: python logging.Logger.propagate
210+
211+
We default to False to avoid replication of logging messages
212+
if, somehow, there's another logger above the one we create
213+
here. (TODO: understand how python logging ancestors work.
214+
I've never expicitly set a parent logger, and yet somehow in
215+
code loggers often seem to have ancestors.)
216+
208217
"""
209218
self._midformat = midformat
210219
self._datefmt = datefmt
@@ -214,6 +223,7 @@ def __init__( self, midformat=None, datefmt=_default_datefmt,
214223

215224
SNLogger._ordinal += 1
216225
self._logger = logging.getLogger( f"SeeChange_{SNLogger._ordinal}" )
226+
self._logger.propagate = propagate
217227

218228
fmtstr = "[%(asctime)s"
219229
if self._show_millisec:

0 commit comments

Comments
 (0)