Jannik Sundø wrote:
Hi all. I think I fixed this problem by setting fileLogger.propagate = 0. Otherwise it will propagate up to the root logger, which outputs to stdout, as far as I can understand.


On 31 Jul 2009, at 01:17, Jannik Sundø wrote:

Dear all, I am quite confused about the Python logging. I have read and re-read the Python documentation for the Python logging module and googled, but to no avail. I simply want one logger to log to a file and another logger to log to the console. Neither should log the other's messages. The code below causes fileLogger to log to BOTH a file and the console, how come? It seems to me that a call such as "consoleHandler = logging.StreamHandler()" affects other loggers, which I do not want. Also, if I do not do logging.basicConfig(level=logging.INFO) in one of the classes of my application, the logging does not work. Any ideas how come?

Thanks a lot for any help! :)

fileHandler = logging.FileHandler('../../logs/log.txt')
fileLogger = logging.getLogger('TESTHARNESSFILE')
fileLogger.addHandler(fileHandler)
fileLogger.setLevel(logging.INFO)
consoleHandler = logging.StreamHandler()
logger = logging.getLogger('TESTHARNESS')
logger.addHandler(consoleHandler)
logger.setLevel(logging.INFO)

--http://mail.python.org/mailman/listinfo/python-list

Please do not top post :o)

Are sure you have used the code provided above ?
Loggers only propagate events to its parent.

fileLogger = logging.getLogger('TESTHARNESSFILE"
logger = logging.getLogger('TESTHARNESS')
Those one have no parent relationship.

However these one have parent relationship:
fileLogger = logging.getLogger('TESTHARNESS.FILE") # note the dotted name
logger = logging.getLogger('TESTHARNESS')


Or maybe you have added a handler to the root logger...

Using the propagate attribute is correct only between 2 loggers that are meant to be parents.

JM
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to