Salome HOME
22eeb43070d0691db5d17398320790745be15929
[modules/smesh.git] / src / Tools / blocFissure / gmu / initLog.py
1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2014-2021  EDF R&D
3 #
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License, or (at your option) any later version.
8 #
9 # This library 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 GNU
12 # Lesser General Public License for more details.
13 #
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 #
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #
20 """Initialisations des impressions"""
21
22 import logging
23 import os
24
25 debug = 10
26 info = 20
27 warning = 30
28 error = 40
29 critical = 50
30 always = 100
31
32 loglevel = warning
33 logging.basicConfig(format='%(funcName)s[%(lineno)d] %(message)s',
34                     level=logging.WARNING)
35 ch = None
36 fh = None
37
38 def setLogger(logfile, level, formatter):
39   """setLogger"""
40   global ch, fh
41   rootLogger = logging.getLogger('')
42   if fh is not None:
43     rootLogger.removeHandler(fh)
44     fh = None
45   if ch is not None:
46     rootLogger.removeHandler(ch)
47     ch = None
48   if logfile:
49     if os.path.exists(logfile):
50       os.remove(logfile)
51     fh = logging.FileHandler(logfile)
52     rootLogger.addHandler(fh)
53     fh.setFormatter(formatter)
54   else:
55     ch = logging.StreamHandler()
56     rootLogger.addHandler(ch)
57     ch.setFormatter(formatter)
58   rootLogger.setLevel(level)
59
60 def setDebug(logfile=None):
61   """setDebug"""
62   global loglevel
63   loglevel = debug
64   level = logging.DEBUG
65   formatter = logging.Formatter('%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s')
66   setLogger(logfile, level, formatter)
67   logging.info('start Debug %s', loglevel)
68
69 def setVerbose(logfile=None):
70   """setVerbose"""
71   global loglevel
72   loglevel = info
73   level = logging.INFO
74   formatter = logging.Formatter('%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s')
75   setLogger(logfile, level, formatter)
76   logging.info('start Verbose %s', loglevel)
77
78 def setRelease(logfile=None):
79   """setRelease"""
80   global loglevel
81   loglevel = warning
82   level = logging.WARNING
83   formatter = logging.Formatter('%(funcName)s[%(lineno)d] %(message)s')
84   setLogger(logfile, level, formatter)
85   logging.warning('start Release %s', loglevel)
86
87 def setUnitTests(logfile=None):
88   """setUnitTests"""
89   global loglevel
90   loglevel = critical
91   level = logging.CRITICAL
92   formatter = logging.Formatter('%(funcName)s[%(lineno)d] %(message)s')
93   setLogger(logfile, level, formatter)
94   logging.critical('start UnitTests %s', loglevel)
95
96 def setPerfTests(logfile=None):
97   """setPerfTests"""
98   global loglevel
99   loglevel = critical
100   level = logging.CRITICAL
101   formatter = logging.Formatter('%(funcName)s[%(lineno)d] %(message)s')
102   setLogger(logfile, level, formatter)
103   logging.info('start PerfTests %s', loglevel)
104
105 def getLogLevel():
106   """getLogLevel"""
107   return loglevel