rename src/nepi/ into just nepi/
[nepi.git] / nepi / util / logger.py
1 #
2 #    NEPI, a framework to manage network experiments
3 #    Copyright (C) 2013 INRIA
4 #
5 #    This program is free software: you can redistribute it and/or modify
6 #    it under the terms of the GNU General Public License version 2 as
7 #    published by the Free Software Foundation;
8 #
9 #    This program is distributed in the hope that it will be useful,
10 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
11 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 #    GNU General Public License for more details.
13 #
14 #    You should have received a copy of the GNU General Public License
15 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 #
17 # Author: Alina Quereilhac <alina.quereilhac@inria.fr>
18
19 import logging
20
21 class Logger(object):
22     def __init__(self, logger_component):
23         self._logger = logging.getLogger(logger_component)
24
25     def debug(self, msg, out = None, err = None):
26         self.log(msg, logging.DEBUG, out, err)
27
28     def error(self, msg, out = None, err = None):
29         self.log(msg, logging.ERROR, out, err)
30
31     def warning(self, msg, out = None, err = None):
32         self.log(msg, logging.WARNING, out, err)
33
34     def info(self, msg, out = None, err = None):
35         self.log(msg, logging.INFO, out, err)
36
37     def log(self, msg, level, out = None, err = None):
38         if out:
39             msg += " - OUT: %s " % out
40
41         if err:
42             msg += " - ERROR: %s " % err
43
44         msg = self.log_message(msg)
45
46         self.logger.log(level, msg)
47
48     def log_message(self, msg):
49         return msg
50
51     @property
52     def logger(self):
53         return self._logger