source: trunk/Monitoring/smon/logger.py @ 841

Last change on this file since 841 was 841, checked in by jripsl, 11 years ago
  • add static class initialisation function.
File size: 1.3 KB
Line 
1# -*- coding: ISO-8859-1 -*-
2
3##################################
4#  @program        smon
5#  @description    simulation monitor
6#  @copyright      Copyright “(c)2009 Centre National de la Recherche Scientifique CNRS.
7#                             All Rights Reserved”
8#  @svn_file       $Id: logger.py 2010 2012-06-18 14:00:35Z jripsl $
9#  @version        $Rev: 2010 $
10#  @lastrevision   $Date: 2012-06-18 16:00:35 +0200 (lun. 18 juin 2012) $
11#  @license        CeCILL (http://dods.ipsl.jussieu.fr/jripsl/smon/LICENSE)
12##################################
13
14import logging
15
16def create_logger(name,fullpath_filename):
17
18        # new logger instance
19        logger = logging.getLogger(name)
20        logger.setLevel(logging.DEBUG)
21
22        # create associated file
23        fh = logging.FileHandler(fullpath_filename)
24        fh.setLevel(logging.DEBUG)
25
26        # create formatter
27        formatter = logging.Formatter('%(asctime)-15s %(code)s - %(message)s')
28        fh.setFormatter(formatter)
29
30        # binding
31        logger.addHandler(fh)
32
33        return logger
34
35# this class must be inherited by classes which need logging feature
36class Logger():
37        _logger=None
38
39        @classmethod
40        def log_and_stdout(cls,errcode,errmsg):
41                cls.stdout(errcode,errmsg)
42                cls.log(errcode,errmsg)
43
44        @classmethod
45        def stdout(cls,errcode,errmsg):
46                print "%s - %s"%(errcode,errmsg)
47
48        @classmethod
49        def log(cls,errcode,errmsg):
50                cls._logger.info(errmsg,extra={'code' : errcode})
Note: See TracBrowser for help on using the repository browser.