# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Shared logging functions"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import logging
import logging.config
def add_logging_options(parser):
"""Add logging configuration options to argument parser.
@param parser: ArgumentParser instance.
"""
# Unused for the moment, but will be useful when we need to add
# logging options.
del parser
def configure_logging_with_args(parser, args):
"""Convenience function for calling configure_logging().
@param parser: ArgumentParser instance.
@param args: Return value from ArgumentParser.parse_args().
"""
# Unused for the moment, but will be useful when we need to add
# logging options.
del args
configure_logging(name=parser.prog)
def configure_logging(name):
"""Configure logging globally.
@param name: Name to prepend to log messages.
This should be the name of the program.
"""
logging.config.dictConfig({
'version': 1,
'formatters': {
'stderr': {
'format': ('{name}: '
'%(asctime)s:%(levelname)s'
':%(module)s:%(funcName)s:%(lineno)d'
':%(message)s'
.format(name=name)),
},
},
'handlers': {
'stderr': {
'class': 'logging.StreamHandler',
'formatter': 'stderr' ,
}
},
'root': {
'level': 'DEBUG',
'handlers': ['stderr'],
},
'disable_existing_loggers': False,
})