2828 logging .NOTSET : 'NOTSET'
2929}
3030
31- logging .basicConfig ()
31+ class NullHandler (logging .Handler ):
32+ def emit (self , record ):
33+ pass
34+
35+ logging .getLogger (__name__ ).addHandler (NullHandler ())
3236
3337
3438from stackify .application import ApiConfiguration
3741from stackify .handler import StackifyHandler
3842
3943
40- # TODO
41- # holds our listeners, since more than one handler can service
42- # the same listener
43- __listener_cache = {}
44-
45-
46- def getLogger (name = None , auto_shutdown = True , ** kwargs ):
44+ def getLogger (name = None , auto_shutdown = True , basic_config = True , ** kwargs ):
4745 '''
4846 Get a logger and attach a StackifyHandler if needed.
4947 '''
48+ if basic_config :
49+ logging .basicConfig ()
50+
5051 if not name :
5152 name = getCallerName (2 )
5253
5354 logger = logging .getLogger (name )
5455
5556 if not [isinstance (x , StackifyHandler ) for x in logger .handlers ]:
56- logger = logging .getLogger (__name__ )
57- logger .debug ('Creating handler for logger %s' , name )
57+ internal_logger = logging .getLogger (__name__ )
58+ internal_logger .debug ('Creating handler for logger %s' , name )
5859 handler = StackifyHandler (** kwargs )
5960 logger .addHandler (handler )
6061
6162 if auto_shutdown :
63+ internal_logger .debug ('Registering atexit callback' )
6264 atexit .register (stopLogging , logger )
6365
6466 if logger .getEffectiveLevel () == logging .NOTSET :
@@ -73,8 +75,8 @@ def stopLogging(logger):
7375 Shut down the StackifyHandler on a given logger. This will block
7476 and wait for the queue to finish uploading.
7577 '''
76- logger = logging .getLogger (__name__ )
77- logger .debug ('Shutting down all handlers' )
78+ internal_logger = logging .getLogger (__name__ )
79+ internal_logger .debug ('Shutting down all handlers' )
7880 for handler in getHandlers (logger ):
7981 handler .listener .stop ()
8082
0 commit comments