Daniel Dehennin <daniel.dehen...@ac-dijon.fr> writes:

> Hello,

Hi


[...]

> I tried to setup the same for my scripts with
> "logging.config.dictConfig()" without much success, I want to limit
> output to stdout to INFO, everything bellow INFO should be sent to
> stderr instead.
>
> Any hints?

I finally find a solution for my script, I added a filter.

Regards.

#+begin_src python
class UniqLevelFilter(logging.Filter):
    def __init__(self, level):
        self._level = level

    def filter(self, rec):
        return rec.levelno == self._level

def init_logging(options):
    # TODO: color stderr messages by level if sys.stderr.isatty()
    # 
http://stackoverflow.com/questions/384076/how-can-i-color-python-logging-output
    # 
http://plumberjack.blogspot.fr/2010/12/colorizing-logging-output-in-terminals.html
    config = { 'version' : 1,
               'filters' : { 'stdout' : { '()' : '__main__.UniqLevelFilter',
                                          'level' : logging.INFO, },
                },
               'formatters' : { 'stdout' : { 'format' : '%(message)s',
                                             'datefmt' : '', },
                                'stderr' : { 'format' : '%(message)s',
                                             'datefmt' : '', },
                },
               'handlers' : { 'stdout' : { 'class' : 'logging.StreamHandler',
                                           'stream' : 'ext://sys.stdout',
                                           'level' : 'INFO',
                                           'filters' : ['stdout'],
                                           'formatter' : 'stdout', },
                              'stderr' : { 'class' : 'logging.StreamHandler', 
                                           'stream' : 'ext://sys.stderr',
                                           'level' : 'WARNING', 
                                           'formatter' : 'stderr', }
                },
               'root' : { 'level' : options.log_level.upper(),
                          'handlers' : ['stdout', 'stderr'],
                },
    }

    logging.config.dictConfig( config )
    return logging.getLogger()

#+end_src

-- 
Daniel Dehennin
EOLE

Attachment: pgppxZX1W6r9Y.pgp
Description: PGP signature

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

Reply via email to