logging into one file problem

Maksim Kasimov maksim.kasimov at gmail.com
Mon Sep 5 17:26:50 CEST 2005


hello

in my modules, I'm using logging module, doing thus (there is a few modules):


in module1.py:
hdl = logging.StreamHandler()
fmt = logging.Formatter("%(name)s:\t%(levelname)s:\t%(asctime)s:\t%(message)s")
hdl.setFormatter(fmt)
log = logging.getLogger('module1')
log.addHandler(hdl)



In script, which is uses these modules, I'm doing in a similar way:


in script.py:
hdl = logging.StreamHandler()
fmt = logging.Formatter("%(name)s:\t%(levelname)s:\t%(asctime)s:\t%(message)s")
hdl.setFormatter(fmt)
log = logging.getLogger('script')
log.addHandler(hdl)



Than, to direct all output into one log-file I'm doing like this:

script.py >> script.log 2>&1


All works as expected - all output in one file (script.log), but only until syslog will rotate script.log, than output to log-file stops.

How to avoid this situation?

i can't using something like this:

hdl = logging.FileHandler('script.log')

because modules are used in other scripts, and log output of each application must be in different files.

and doing in script.py like this:

module.hdl = hdl
module.log = log

will works, but it is very inconvenient, because in main script, i'm not importing all the modules (some modules imported by other modules).


thanks for help.

Python 2.2.3
FreeBSD


-- 
Best regards,
Maksim Kasimov
mailto: maksim.kasimov at gmail.com



More information about the Python-list mailing list