Salome HOME
PR: merge from branch BR_auto_V310 tag mergefrom_OCC_development_for_3_2_0a2_10mar06
[modules/kernel.git] / src / Logger / SALOME_Logger_Server.cxx
1 //  SALOME Logger : CORBA server managing trace output
2 //
3 //  Copyright (C) 2003  CEA/DEN, EDF R&D
4 //
5 //
6 //
7 //  File   : SALOME_Logger_Server.cxx
8 //  Author : Vasily Rusyaev
9 //  Module : SALOME
10
11 #include <iostream>
12 #include "SALOME_Logger_Server.hxx"
13 #include <SALOMEconfig.h>
14 #include <sys/types.h>
15 #ifndef __WIN32__
16 # include <unistd.h>
17 #endif
18
19 #ifdef WNT
20 #include <omnithread/pthread_nt.h>
21 #endif
22
23 omni_mutex Logger::myLock;
24
25 /////////////////////////////////////////////////////////////////////
26 // Construction/Destruction
27 //////////////////////////////////////////////////////////////////////
28
29 Logger::Logger()
30 {
31   m_putIntoFile = false;
32 }
33
34 Logger::Logger(const char *filename)
35 {
36   //  m_outputFile.open( filename, ios::out | ios::trunc , filebuf::openprot);
37   m_outputFile.open( filename, std::ios::out | std::ios::trunc);
38   if (m_outputFile.is_open())
39     m_putIntoFile = true;
40   else
41     m_putIntoFile = false;
42 }
43
44 Logger::~Logger()
45 {
46   if (m_putIntoFile)
47     m_outputFile.close();
48 }
49
50 void Logger::putMessage(const char* message)
51 {
52   myLock.lock();
53   if (m_putIntoFile)
54
55         m_outputFile << message << std::flush;
56   else
57     std::cout << message;
58   myLock.unlock();
59 }
60
61 void Logger::ping()
62 {
63   //cout<<" Logger::ping() pid "<< getpid()<<endl;
64 }