X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FdaComposant%2FdaCore%2FExtendedLogging.py;h=c67f0308290c16e5afdb48bdb6a3cade37cff9f3;hb=2201c84e2047882b9bd918b3e62de45711d514d5;hp=7f0fc5d501a464fbcc23bed42d3cb1509221660a;hpb=8b0fe9f58619f710527afbcc76d565bf697ec552;p=modules%2Fadao.git diff --git a/src/daComposant/daCore/ExtendedLogging.py b/src/daComposant/daCore/ExtendedLogging.py index 7f0fc5d..c67f030 100644 --- a/src/daComposant/daCore/ExtendedLogging.py +++ b/src/daComposant/daCore/ExtendedLogging.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2008-2017 EDF R&D +# Copyright (C) 2008-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 @@ -24,9 +24,8 @@ Ce module permet de mettre en place un logging utilisable partout dans l'application, par défaut à la console, et si nécessaire dans un fichier. - Il doit être appelé en premier dans AssimilationStudy (mais pas directement - dans les applications utilisateurs), en l'important et en instanciant un - objet : + Il doit être appelé en premier dans Aidsm (mais pas directement dans les + applications utilisateurs), en l'important et en instanciant un objet : import ExtendedLogging ; ExtendedLogging.ExtendedLogging() Par défaut, seuls les messages du niveau WARNING ou au-delà sont disponibles @@ -35,7 +34,7 @@ import ExtendedLogging ; ExtendedLogging.ExtendedLogging(level=20) On peut éventuellement demander à l'objet de sortir aussi les messages dans - un fichier (noms par défaut : AssimilationStudy.log, niveau NOTSET) : + un fichier (noms par défaut : Aidsm.log, niveau NOTSET) : import ExtendedLogging ; ExtendedLogging.ExtendedLogging().setLogfile() Si on veut changer le nom du fichier ou le niveau global de message, il faut @@ -76,6 +75,8 @@ __all__ = [] import os import sys import logging +import functools +import time from daCore import PlatformInfo LOGFILE = os.path.join(os.path.abspath(os.curdir),"AssimilationStudy.log") @@ -113,9 +114,9 @@ class ExtendedLogging(object): logging.info( "- Sphinx.......: "+str(PlatformInfo.has_sphinx) ) logging.info( "- Nlopt........: "+str(PlatformInfo.has_nlopt) ) logging.info( "Library versions:" ) - logging.info( "- Python.......:"+p.getPythonVersion() ) - logging.info( "- Numpy........:"+p.getNumpyVersion() ) - logging.info( "- Scipy........:"+p.getScipyVersion() ) + logging.info( "- Python.......: "+p.getPythonVersion() ) + logging.info( "- Numpy........: "+p.getNumpyVersion() ) + logging.info( "- Scipy........: "+p.getScipyVersion() ) logging.info( "" ) def setLogfile(self, filename=LOGFILE, filemode="w", level=logging.NOTSET): @@ -145,6 +146,18 @@ class ExtendedLogging(object): """ return logging.getLevelName( logging.getLogger().getEffectiveLevel() ) +# ============================================================================== +def logtimer(f): + @functools.wraps(f) + def wrapper(*args, **kwargs): + start = time.clock() # time.time() + result = f(*args, **kwargs) + end = time.clock() # time.time() + msg = 'TIMER Durée elapsed de la fonction utilisateur "{}": {:.3f}s' + logging.debug(msg.format(f.__name__, end-start)) + return result + return wrapper + # ============================================================================== if __name__ == "__main__": - print('\n AUTODIAGNOSTIC \n') + print('\n AUTODIAGNOSTIC\n')