improvements sought re. logging across modules
The Night Tripper
jkn+gg at nicorp.co.uk
Wed Apr 24 12:54:14 EDT 2013
Hi all
I have a small suite of python modules, say
A.py
B.py
C.py
which can be invoked in a variety of ways. eg.
1) A.py is invoked directly; this imports and uses B.py and C.py
2) B.py is invoked; this imports and uses A.py and C.py
I use the logging module in all of these python modules, and I want to be
able to use a single logger across the entire suite of whichever set of
scripts is running.
The way I do this at the moment is to have a separate module mylogger.py:
== mylogger.py ==
import logging
class MyLogger: #using python 2.4 ;-o
def __init__(self):
self.log = logging.getLogger(MY_APP_NAME)
def setupLogging(self):
self.log.setlevel(logging.DEBUG)
# ...
# our singleton logging object
mylogger = Mylogger()
# EOF
and then in my other modules A.py, B.py etc. I have something like:
== A.py ==
import mylogger
gLog = mylogger.mylogger
if __name__ == "__main__":
gLog.setupLogging()
gLog.info("Module A running as main")
main()
#EOF
== B.py ==
import mylogger
gLog = mylogger.mylogger
if __name__ == "__main__":
gLog.setupLogging()
gLog.info("Module B running as main")
main()
# EOF
This works, but I can't help thinking I'm missing a trick here. Any
suggestions?
Thanks
j^n
More information about the Python-list
mailing list