Salome HOME
bos #26515 [CEA 24622] Failing SMESH tests
[modules/smesh.git] / src / Tools / blocFissure / gmu / initLog.py
index 07c0c36407f3795db00c629f84e3c08ddba33d23..c665e5c75642c70002cd284cdec47c920764ac2c 100644 (file)
 # -*- coding: utf-8 -*-
+# Copyright (C) 2014-2021  EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""Initialisations des impressions"""
 
 import logging
+import os
+import tempfile
 
 debug = 10
 info = 20
 warning = 30
 error = 40
 critical = 50
+always = 100
+
+LOGFILE = tempfile.NamedTemporaryFile().name + "_blocFissure.log"
+
+LOG_LEVEL = warning
+
+logging.basicConfig(format='%(funcName)s[%(lineno)d] %(message)s', \
+                    level=logging.WARNING, \
+                    filename=LOGFILE, filemode='w')
+ch = None
+fh = None
+
+def setLogger(logfile, level, formatter):
+  """setLogger"""
+  global ch, fh
+  rootLogger = logging.getLogger('')
+  if fh is not None:
+    rootLogger.removeHandler(fh)
+    fh = None
+  if ch is not None:
+    rootLogger.removeHandler(ch)
+    ch = None
+  if logfile:
+    if os.path.exists(logfile):
+      os.remove(logfile)
+    fh = logging.FileHandler(logfile)
+    rootLogger.addHandler(fh)
+    fh.setFormatter(formatter)
+  else:
+    ch = logging.StreamHandler()
+    rootLogger.addHandler(ch)
+    ch.setFormatter(formatter)
+  rootLogger.setLevel(level)
+
+def setDebug(logfile=None):
+  """setDebug"""
+  global LOG_LEVEL
+  LOG_LEVEL = debug
+  level = logging.DEBUG
+  formatter = logging.Formatter('%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s')
+  setLogger(logfile, level, formatter)
+  logging.info('start Debug %s', LOG_LEVEL)
+
+def setVerbose(logfile=None):
+  """setVerbose"""
+  global LOG_LEVEL
+  LOG_LEVEL = info
+  level = logging.INFO
+  formatter = logging.Formatter('%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s')
+  setLogger(logfile, level, formatter)
+  logging.info('start Verbose %s', LOG_LEVEL)
+
+def setRelease(logfile=None):
+  """setRelease"""
+  global LOG_LEVEL
+  LOG_LEVEL = warning
+  level = logging.WARNING
+  formatter = logging.Formatter('%(funcName)s[%(lineno)d] %(message)s')
+  setLogger(logfile, level, formatter)
+  logging.warning('start Release %s', LOG_LEVEL)
+
+def setUnitTests(logfile=None):
+  """setUnitTests"""
+  global LOG_LEVEL
+  LOG_LEVEL = critical
+  level = logging.CRITICAL
+  formatter = logging.Formatter('%(funcName)s[%(lineno)d] %(message)s')
+  setLogger(logfile, level, formatter)
+  logging.critical('start UnitTests %s', LOG_LEVEL)
+
+def setPerfTests(logfile=None):
+  """setPerfTests"""
+  global LOG_LEVEL
+  LOG_LEVEL = critical
+  level = logging.CRITICAL
+  formatter = logging.Formatter('%(funcName)s[%(lineno)d] %(message)s')
+  setLogger(logfile, level, formatter)
+  logging.info('start PerfTests %s', LOG_LEVEL)
+
+def setAlways(logfile=None):
+  """setAlways"""
+  global LOG_LEVEL
+  LOG_LEVEL = always
+  level = logging.CRITICAL
+  formatter = logging.Formatter('%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s')
+  setLogger(logfile, level, formatter)
+  logging.info('start Always %s', LOG_LEVEL)
 
-loglevel = warning
-
-def setDebug():
-  global loglevel
-  logging.basicConfig(format='%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s',
-                      level=logging.DEBUG)
-  loglevel = debug
-  logging.info('start Debug %s', loglevel)
-
-def setVerbose():
-  global loglevel
-  logging.basicConfig(format='%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s',
-                      level=logging.INFO)
-  loglevel = info
-  logging.info('start Verbose %s', loglevel)
-
-def setRelease():
-  global loglevel
-  logging.basicConfig(format='%(funcName)s[%(lineno)d] %(message)s',
-                      level=logging.WARNING)
-  loglevel = warning
-  logging.warning('start Release %s', loglevel)
-  
-def setUnitTests():
-  global loglevel
-  logging.basicConfig(format='%(funcName)s[%(lineno)d] %(message)s',
-                      level=logging.CRITICAL)
-  loglevel = critical
-  logging.critical('start UnitTests %s', loglevel)
-  
-def setPerfTests():
-  global loglevel
-  logging.basicConfig(format='%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s',
-                      level=logging.CRITICAL)
-  loglevel = critical
-  logging.info('start PerfTests %s', loglevel)
-  
 def getLogLevel():
-  return loglevel
-  
-  #logging.basicConfig(filename='myapp.log',
-  #                    format='%(asctime)s %(message)s',
-  #                    datefmt='%m/%d/%Y %I:%M:%S %p',
-  #                    level=logging.DEBUG)
+  """getLogLevel"""
+  return LOG_LEVEL