Source code for obci.analysis.obci_signal_processing.obci_signal_processing_logging

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# OpenBCI - framework for Brain-Computer Interfaces based on EEG signal
# Project was initiated by Magdalena Michalska and Krzysztof Kulewski
# as part of their MSc theses at the University of Warsaw.
# Copyright (C) 2008-2009 Krzysztof Kulewski and Magdalena Michalska
#
# 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
# the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
#
# Author:
#     Mateusz KruszyƄski <mateusz.kruszynski@gmail.com>

"""Module defines a single method get_logger that returns logger with
set logging level. Change loggin.INFO lines to change logging level."""
import logging
LEVELS = {'debug': logging.DEBUG,
          'info': logging.INFO,
          'warning': logging.WARNING,
          'error': logging.ERROR,
          'critical': logging.CRITICAL}


[docs]def get_logger(p_name, p_level='info'): """Return logger with p_name as name. And logging level p_level. p_level should be in (starting with the most talkactive): 'debug', 'info', 'warning', 'error', 'critical'.""" logger = logging.getLogger(p_name) if len(logger.handlers) == 0: # Some module migh be imported few times. In every get_logger call # with p_name = "X" we return the same instance of logger, bu we must # ensure, that the logger has no more than one handler. handler = logging.StreamHandler() level = LEVELS[p_level] logger.setLevel(level) handler.setLevel(level) formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") handler.setFormatter(formatter) logger.addHandler(handler) return logger