python logging module problem
Ritesh Raj Sarraf
riteshsarraf at gmail.com
Fri Jul 14 07:45:38 EDT 2006
Peter Otten wrote:
> You can achieve the desired behaviour by adding a custom Filter:
>
> import sys
> import logging
>
> logger = logging.getLogger("my_app")
> logger.setLevel(logging.DEBUG)
>
> class LevelFilter(logging.Filter):
> def __init__(self, level):
> self.level = level
> def filter(self, record):
> return self.level == record.levelno
>
> def make_handler(outstream, format, level):
> handler = logging.StreamHandler(outstream)
> formatter = logging.Formatter(format)
> handler.setFormatter(formatter)
> handler.addFilter(LevelFilter(level))
> return handler
>
> logger.addHandler(make_handler(sys.stderr,
> 'STDERR %(levelname)s %(message)s', logging.WARN))
> logger.addHandler(make_handler(sys.stdout,
> 'STDOUT %(levelname)s %(message)s', logging.INFO))
>
> logger.info("the world is flat")
> logger.warning("take care not to fall off its rim")
>
> Not sure whether this is a good idea. Another way might be to use distinct
> loggers.
>
> Peter
Thanks. This looks similar to what I wanted. I'll try customizing it to
my requirements and see if this helps.
Thanks,
Ritesh
More information about the Python-list
mailing list