]> SALOME platform Git repositories - modules/kernel.git/blob - src/Logger/SALOME_Trace.py
Salome HOME
PR: merge SalomePro 1_2d = mergefrom_BRANCH_MergeV1_2d
[modules/kernel.git] / src / Logger / SALOME_Trace.py
1 #  SALOME Logger : CORBA server managing trace output
2 #
3 #  Copyright (C) 2003  CEA/DEN, EDF R&D
4 #
5 #
6 #
7 #  File   : SALOME_Trace.py
8 #  Module : SALOME
9
10 import sys
11 import CosNaming
12 from omniORB import CORBA
13 import SALOME_Logger
14 import time
15 import os
16
17 trace="local"
18 if (os.environ["SALOME_trace"] == "with_logger"):
19     trace="logger"
20
21 class SALOME_Trace :
22     def __init__(self):
23         self.m_pInterfaceLogger = None
24         if trace=="logger":
25             ok = 0
26             steps = 40
27             while steps > 0 and ok == 0:
28
29               try:
30                 orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID)
31                 theObj = orb.resolve_initial_references("NameService")
32                 inc = theObj._narrow(CosNaming.NamingContext)
33                 name = [CosNaming.NameComponent("Logger","")]
34                 obj = inc.resolve(name);
35
36                 self.m_pInterfaceLogger = obj._narrow(SALOME_Logger.Logger)
37
38                 if not self.m_pInterfaceLogger is None:
39                   ok = 1
40
41               except CosNaming.NamingContext.NotFound, e :
42                     if steps == 1: print "Caught exception: Naming Service can't found Logger"
43               except CORBA.COMM_FAILURE, e:
44                     if steps == 1: print "Caught CORBA::SystemException CommFailure"
45               except CORBA.SystemException, e:
46                     if steps == 1: print "Caught CORBA::SystemException."
47               except CORBA.Exception, e:
48                     if steps == 1: print "Caught CORBA::Exception."
49               except Exception, e:
50                     if steps == 1: print "Caught unknown exception."
51
52               time.sleep(0.25)
53               steps = steps - 1
54           
55           
56     def putMessage ( self, LogMsg ) :
57         
58         if (CORBA.is_nil(self.m_pInterfaceLogger)):
59             print  LogMsg;
60         else:
61             self.m_pInterfaceLogger.putMessage (LogMsg) 
62