Source code for rebasehelper.logger

# -*- coding: utf-8 -*-
#
# This tool helps you to rebase package to the latest version
# Copyright (C) 2013-2014 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# he Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Authors: Petr Hracek <phracek@redhat.com>
#          Tomas Hozza <thozza@redhat.com>

import logging


[docs]class LoggerHelper(object): """ Helper class for setting up a logger """
[docs] @staticmethod def get_basic_logger(logger_name, level=logging.DEBUG): """ Sets-up a basic logger without any handler :param logger_name: Logger name :param level: severity level :return: created logger """ logger = logging.getLogger(logger_name) logger.setLevel(level) return logger
[docs] @staticmethod def add_stream_handler(logger, level=None): """ Adds console handler with given severity. :param logger: logger object to add the handler to :param level: severity level :return: created handler object """ console_handler = logging.StreamHandler() if level: console_handler.setLevel(level) logger.addHandler(console_handler) return console_handler
[docs] @staticmethod def add_file_handler(logger, path, formatter=None, level=None): """ Adds FileHandler to a given logger :param logger: Logger object to which the file handler will be added :param path: Path to file where the debug log will be written :return: None """ file_handler = logging.FileHandler(path, 'w') if level: file_handler.setLevel(level) if formatter: file_handler.setFormatter(formatter) logger.addHandler(file_handler)
# the main Rebase-Helper logger logger = LoggerHelper.get_basic_logger('rebase-helper') # logger for output tool logger_output = LoggerHelper.get_basic_logger('output-tool', logging.INFO) logger_report = LoggerHelper.get_basic_logger('rebase-helper-report', logging.INFO) logger_upstream = LoggerHelper.get_basic_logger('rebase-helper-upstream') LoggerHelper.add_stream_handler(logger_output) formatter = logging.Formatter("%(asctime)s %(levelname)s\t: %(message)s")