summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2009-12-30 12:50:59 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2009-12-30 12:50:59 +0000
commit4bfafc2ef74015498316559ea2c48af623f1083c (patch)
tree1170e8e04afcb787029c02060278c472e72e7a4d
parente76a2c806d299a2a1a7d521d1c8a352bb66b738f (diff)
downloadATCD-4bfafc2ef74015498316559ea2c48af623f1083c.tar.gz
Wed Dec 30 12:50:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
* ciao/ComponentServer/CIAO_ComponentServer.cpp * ciao/ComponentServer/CIAO_ComponentServer_Task.cpp * ciao/ComponentServer/CIAO_ComponentServer_Task.h * ciao/ComponentServer/CIAO_RTComponentServer_Task.cpp * ciao/ComponentServer/CIAO_RTComponentServer_Task.h * ciao/Logger/CIAOLoggerFactory.h * ciao/Logger/File_Logger_Backend.cpp * ciao/Logger/File_Logger_Backend.h * ciao/Logger/Logger.mpc * ciao/Logger/Logger_Service.cpp * ciao/Logger/Logger_Service.h * DAnCE/Deployment/Module_Main.h * DAnCE/Logger/DAnCELoggerFactory.h * DAnCE/Logger/File_Logger_Backend.cpp * DAnCE/Logger/File_Logger_Backend.h * DAnCE/Logger/Logger.mpc * DAnCE/Logger/Logger_Service.cpp * DAnCE/Logger/Logger_Service.h * DAnCE/RepositoryManager/repository_manager_admin_exec.cpp * DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp Simplified logging infrastructure code
-rw-r--r--CIAO/ChangeLog25
-rw-r--r--CIAO/DAnCE/Deployment/Module_Main.h27
-rw-r--r--CIAO/DAnCE/Logger/DAnCELoggerFactory.h19
-rw-r--r--CIAO/DAnCE/Logger/File_Logger_Backend.cpp46
-rw-r--r--CIAO/DAnCE/Logger/File_Logger_Backend.h50
-rw-r--r--CIAO/DAnCE/Logger/Logger.mpc3
-rw-r--r--CIAO/DAnCE/Logger/Logger_Service.cpp68
-rw-r--r--CIAO/DAnCE/Logger/Logger_Service.h16
-rw-r--r--CIAO/DAnCE/RepositoryManager/repository_manager_admin_exec.cpp22
-rw-r--r--CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp13
-rw-r--r--CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp13
-rw-r--r--CIAO/ciao/ComponentServer/CIAO_ComponentServer.cpp5
-rw-r--r--CIAO/ciao/ComponentServer/CIAO_ComponentServer_Task.cpp30
-rw-r--r--CIAO/ciao/ComponentServer/CIAO_ComponentServer_Task.h5
-rw-r--r--CIAO/ciao/ComponentServer/CIAO_RTComponentServer_Task.cpp30
-rw-r--r--CIAO/ciao/ComponentServer/CIAO_RTComponentServer_Task.h5
-rw-r--r--CIAO/ciao/Logger/CIAOLoggerFactory.h19
-rw-r--r--CIAO/ciao/Logger/File_Logger_Backend.cpp46
-rw-r--r--CIAO/ciao/Logger/File_Logger_Backend.h51
-rw-r--r--CIAO/ciao/Logger/Logger.mpc3
-rw-r--r--CIAO/ciao/Logger/Logger_Service.cpp57
-rw-r--r--CIAO/ciao/Logger/Logger_Service.h31
22 files changed, 185 insertions, 399 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index fdbbc17c6e2..cb0e5ccdb64 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,3 +1,28 @@
+Wed Dec 30 12:50:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp
+ * ciao/ComponentServer/CIAO_ComponentServer_Task.cpp
+ * ciao/ComponentServer/CIAO_ComponentServer_Task.h
+ * ciao/ComponentServer/CIAO_RTComponentServer_Task.cpp
+ * ciao/ComponentServer/CIAO_RTComponentServer_Task.h
+ * ciao/Logger/CIAOLoggerFactory.h
+ * ciao/Logger/File_Logger_Backend.cpp
+ * ciao/Logger/File_Logger_Backend.h
+ * ciao/Logger/Logger.mpc
+ * ciao/Logger/Logger_Service.cpp
+ * ciao/Logger/Logger_Service.h
+ * DAnCE/Deployment/Module_Main.h
+ * DAnCE/Logger/DAnCELoggerFactory.h
+ * DAnCE/Logger/File_Logger_Backend.cpp
+ * DAnCE/Logger/File_Logger_Backend.h
+ * DAnCE/Logger/Logger.mpc
+ * DAnCE/Logger/Logger_Service.cpp
+ * DAnCE/Logger/Logger_Service.h
+ * DAnCE/RepositoryManager/repository_manager_admin_exec.cpp
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp
+ * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp
+ Simplified logging infrastructure code
+
Wed Dec 30 11:56:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
* connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
diff --git a/CIAO/DAnCE/Deployment/Module_Main.h b/CIAO/DAnCE/Deployment/Module_Main.h
index 85a819096ec..b4f3ac01040 100644
--- a/CIAO/DAnCE/Deployment/Module_Main.h
+++ b/CIAO/DAnCE/Deployment/Module_Main.h
@@ -9,8 +9,8 @@
#ifndef DANCE_MODULE_MAIN_H_
#define DANCE_MODULE_MAIN_H_
-#include "ace/Auto_Ptr.h"
#include "ace/Dynamic_Service.h"
+#include "tao/ORB.h"
#include "tao/Object.h"
#include "DAnCE/Logger/Log_Macros.h"
#include "DAnCE/Logger/Logger_Service.h"
@@ -25,45 +25,28 @@
//#include DANCE_MODULE_MAIN_INCLUDE_NAME
-using namespace DAnCE;
-
int
ACE_TMAIN (int argc, ACE_TCHAR **argv)
{
DANCE_DISABLE_TRACE ();
- auto_ptr<Logger_Service> logger;
int retval = 0;
try
{
- Logger_Service
- * dlf = ACE_Dynamic_Service<Logger_Service>::instance ("DAnCE_Logger_Backend_Factory");
+ DAnCE::Logger_Service
+ * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger");
- if (!dlf)
+ if (dlf)
{
- dlf = new Logger_Service;
- logger.reset (dlf);
+ dlf->init (argc, argv);
}
- dlf->init (argc, argv);
-
DANCE_DEBUG (6, (LM_TRACE, DLINFO
ACE_TEXT("Module_main.h - initializing ORB\n")));
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
- ACE_Log_Msg_Backend * backend = dlf->get_logger_backend(orb);
-
- if (backend != 0)
- {
- backend->open(0);
- ACE_Log_Msg::msg_backend (backend);
- ACE_Log_Msg * ace = ACE_Log_Msg::instance();
- ace->clr_flags(ace->flags());
- ace->set_flags(ACE_Log_Msg::CUSTOM);
- }
-
DANCE_DEBUG (6, (LM_TRACE, DLINFO
ACE_TEXT("Module_Main.h - initializing module instance\n")));
diff --git a/CIAO/DAnCE/Logger/DAnCELoggerFactory.h b/CIAO/DAnCE/Logger/DAnCELoggerFactory.h
deleted file mode 100644
index f2ed4800950..00000000000
--- a/CIAO/DAnCE/Logger/DAnCELoggerFactory.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// $Id$
-#ifndef DAnCE_LOGGERFACTORY_BASE_H_
-#define DAnCE_LOGGERFACTORY_BASE_H_
-
-#include "ace/Service_Object.h"
-#include "tao/ORB.h"
-#include "ace/Log_Msg_Backend.h"
-
-namespace DAnCE
- {
-
- class DAnCELoggerFactory : public ACE_Service_Object
- {
- public:
- virtual ACE_Log_Msg_Backend * get_logger_backend (CORBA::ORB_ptr orb) = 0;
- };
-} // DAnCE
-
-#endif /*LOGGERFACTORY_H_*/
diff --git a/CIAO/DAnCE/Logger/File_Logger_Backend.cpp b/CIAO/DAnCE/Logger/File_Logger_Backend.cpp
deleted file mode 100644
index cf88c47c114..00000000000
--- a/CIAO/DAnCE/Logger/File_Logger_Backend.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-// $Id$
-#include "File_Logger_Backend.h"
-#include "ace/OS_NS_stdio.h"
-#include "ace/Log_Record.h"
-#include "ace/Log_Msg.h"
-#include "Log_Macros.h"
-
-namespace DAnCE
- {
-
- int
- File_Logger_Backend::open (const ACE_TCHAR *)
- {
- DANCE_DEBUG (6, (LM_DEBUG, "Setting logger's output to file \"%s\"\n", this->filename_.c_str()));
- this->fh_ = ACE_OS::fopen (this->filename_.c_str(), "a+");
- if (!this->fh_)
- {
- ACE_TString s = ACE_TEXT("Failed to open log file \"");
- s += this->filename_;
- s += ACE_TEXT("\"\n");
- throw LoggerError (s.c_str());
- }
- return 0;
- }
-
- int
- File_Logger_Backend::close (void)
- {
- if (this->fh_)
- {
- ACE_OS::fclose (this->fh_);
- this->fh_ = 0;
- }
- return 0;
- }
-
- ssize_t
- File_Logger_Backend::log (ACE_Log_Record &log_record)
- {
- int const res = log_record.print (0, ACE_Log_Msg::VERBOSE, this->fh_);
- ACE_OS::fflush (this->fh_);
- return res;
- }
-
-}
-
diff --git a/CIAO/DAnCE/Logger/File_Logger_Backend.h b/CIAO/DAnCE/Logger/File_Logger_Backend.h
deleted file mode 100644
index 6a02326f429..00000000000
--- a/CIAO/DAnCE/Logger/File_Logger_Backend.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// $Id$
-#ifndef FILE_LOGGER_BACKEND_H_
-#define FILE_LOGGER_BACKEND_H_
-
-#include "ace/Log_Msg_Backend.h"
-#include "DAnCE_Logger_Export.h"
-#include "ace/SString.h"
-
-namespace DAnCE
- {
-
- class DAnCE_Logger_Export LoggerError
- {
- public:
- LoggerError (const ACE_TCHAR * msg)
- : errmsg_ (msg) {};
- ACE_TString errmsg_;
- };
-
- class DAnCE_Logger_Export File_Logger_Backend : public ACE_Log_Msg_Backend
- {
- public:
- File_Logger_Backend (const ACE_TCHAR * fname)
- : fh_ (0), filename_ (fname) {}
-
- virtual ~File_Logger_Backend (void)
- {
- this->close();
- };
-
- virtual int open (const ACE_TCHAR *logger_key);
-
- virtual int reset (void)
- {
- this->close();
- return this->open (0);
- };
-
- virtual int close (void);
-
- virtual ssize_t log (ACE_Log_Record &log_record);
-
- private:
- FILE * fh_;
- ACE_TString filename_;
- };
-
-} // DAnCE
-
-#endif /*FILE_LOGGER_BACKEND_H_*/
diff --git a/CIAO/DAnCE/Logger/Logger.mpc b/CIAO/DAnCE/Logger/Logger.mpc
index b2f543bd5ae..649d5ff71fc 100644
--- a/CIAO/DAnCE/Logger/Logger.mpc
+++ b/CIAO/DAnCE/Logger/Logger.mpc
@@ -1,12 +1,11 @@
// -*- MPC -*-
// $Id$
-project(DAnCE_Logger): dance_lib, messaging, acelib {
+project(DAnCE_Logger): dance_lib, taolib, acelib {
sharedname = DAnCE_Logger
dynamicflags = DANCE_LOGGER_BUILD_DLL
Source_Files {
- File_Logger_Backend.cpp
Logger_Service.cpp
Log_Macros.cpp
}
diff --git a/CIAO/DAnCE/Logger/Logger_Service.cpp b/CIAO/DAnCE/Logger/Logger_Service.cpp
index c1407593a11..8f8246f79f0 100644
--- a/CIAO/DAnCE/Logger/Logger_Service.cpp
+++ b/CIAO/DAnCE/Logger/Logger_Service.cpp
@@ -5,6 +5,13 @@
#include "ace/CORBA_macros.h"
#include "tao/SystemException.h"
#include "Log_Macros.h"
+#include "ace/Service_Config.h"
+
+#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
+// Needed to set ACE_LOG_MSG::msg_ostream()
+// FUZZ: disable check_for_streams_include
+# include "ace/streams.h"
+#endif /* !ACE_LACKS_IOSTREAM_TOTALLY */
namespace DAnCE
{
@@ -39,10 +46,48 @@ namespace DAnCE
DANCE_DISABLE_TRACE ();
}
+ if (this->filename_.length () > 0)
+ {
+#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
+
+ FILE* output_stream = ACE_OS::fopen (this->filename_.c_str (), ACE_TEXT ("a"));
+
+ ACE_LOG_MSG->msg_ostream (output_stream, 1);
+
+#else /* ! ACE_LACKS_IOSTREAM_TOTALLY */
+
+ ofstream* output_stream = 0;
+
+ //
+ // note: we are allocating dynamic memory here....but
+ // I assume it will persist for the life of the program
+ //
+
+ ACE_NEW_THROW_EX (output_stream,
+ ofstream (),
+ CORBA::NO_MEMORY (
+ CORBA::SystemException::_tao_minor_code (
+ 0,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+
+ output_stream->open (ACE_TEXT_ALWAYS_CHAR (this->filename_.c_str ()),
+ ios::out | ios::app);
+
+ if (!output_stream->bad ())
+ {
+ ACE_LOG_MSG->msg_ostream (output_stream, 1);
+ }
+
+#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
+
+ ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR | ACE_Log_Msg::LOGGER);
+ ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
+ }
+
return 0;
}
-
void
Logger_Service::parse_args (int argc, ACE_TCHAR **argv)
{
@@ -88,22 +133,19 @@ namespace DAnCE
}
}
- ACE_Log_Msg_Backend *
- Logger_Service::get_logger_backend (CORBA::ORB_ptr)
+ int
+ Logger_Service::Initializer (void)
{
- if (this->filename_ != ACE_TEXT(""))
- {
- File_Logger_Backend * the_backend = 0;
- ACE_NEW_THROW_EX (the_backend,
- File_Logger_Backend (this->filename_.c_str()),
- CORBA::NO_MEMORY());
- return the_backend;
- }
- return 0;
+ return ACE_Service_Config::process_directive (ace_svc_desc_Logger_Service);
}
-
} // DAnCE
using namespace DAnCE;
+ACE_STATIC_SVC_DEFINE (Logger_Service,
+ ACE_TEXT ("DAnCE_Logger"),
+ ACE_SVC_OBJ_T,
+ &ACE_SVC_NAME (Logger_Service),
+ ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
+ 0)
ACE_FACTORY_DEFINE (DAnCE_Logger, Logger_Service)
diff --git a/CIAO/DAnCE/Logger/Logger_Service.h b/CIAO/DAnCE/Logger/Logger_Service.h
index c08629a53f2..8bbf6943363 100644
--- a/CIAO/DAnCE/Logger/Logger_Service.h
+++ b/CIAO/DAnCE/Logger/Logger_Service.h
@@ -3,25 +3,29 @@
#define LOGGER_SERVICE_H_
#include "DAnCE/Logger/DAnCE_Logger_Export.h"
-#include "DAnCE/Logger/DAnCELoggerFactory.h"
-#include "DAnCE/Logger/File_Logger_Backend.h"
+#include "ace/Service_Object.h"
namespace DAnCE
{
- class DAnCE_Logger_Export Logger_Service : public ::DAnCE::DAnCELoggerFactory
- {
+ class DAnCE_Logger_Export Logger_Service : public ACE_Service_Object
+ {
public:
Logger_Service (void);
virtual int init (int argc, ACE_TCHAR * argv[]);
- virtual ACE_Log_Msg_Backend * get_logger_backend (CORBA::ORB_ptr orb);
+
+ static int Initializer (void);
private:
void parse_args (int argc, ACE_TCHAR **argv);
ACE_TString filename_;
bool trace_;
- };
+ };
}
+static int TAO_Requires_DAnCE_Logger_Service_Initializer =
+ DAnCE::Logger_Service::Initializer ();
+
+ACE_STATIC_SVC_DECLARE (Logger_Service)
ACE_FACTORY_DECLARE (DAnCE_Logger, Logger_Service)
#endif /*LOGGER_SERVICE_H_*/
diff --git a/CIAO/DAnCE/RepositoryManager/repository_manager_admin_exec.cpp b/CIAO/DAnCE/RepositoryManager/repository_manager_admin_exec.cpp
index 5806564712c..f189afdf197 100644
--- a/CIAO/DAnCE/RepositoryManager/repository_manager_admin_exec.cpp
+++ b/CIAO/DAnCE/RepositoryManager/repository_manager_admin_exec.cpp
@@ -322,34 +322,20 @@ int ACE_TMAIN (int argc, ACE_TCHAR **argv)
try
{
DAnCE::Logger_Service
- * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger_Backend_Factory");
+ * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger");
- if (!dlf)
+ if (dlf)
{
- dlf = new DAnCE::Logger_Service;
- logger.reset (dlf);
+ dlf->init (argc, argv);
}
- dlf->init (argc, argv);
-
DANCE_DEBUG (9, (LM_TRACE, DLINFO
"Module_main.h - initializing ORB\n"));
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
- ACE_Log_Msg_Backend * backend = dlf->get_logger_backend(orb);
-
- if (backend != 0)
- {
- backend->open(0);
- ACE_Log_Msg::msg_backend (backend);
- ACE_Log_Msg * ace = ACE_Log_Msg::instance();
- ace->clr_flags(ace->flags());
- ace->set_flags(ACE_Log_Msg::CUSTOM);
- }
-
Options options;
- int error = options.parse_args (argc, argv);
+ int const error = options.parse_args (argc, argv);
if (error == -1)
{
DANCE_ERROR (1, (LM_ERROR, DLINFO "repository_manager_admin_exec::main - "
diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp
index 209bc927792..3e9c61e74b1 100644
--- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp
+++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp
@@ -27,16 +27,13 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
DANCE_DISABLE_TRACE ();
- auto_ptr<DAnCE::Logger_Service> logger;
-
DAnCE::Logger_Service
- * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger_Backend_Factory");
-
- if (!dlf)
- dlf = new DAnCE::Logger_Service;
+ * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger");
- logger.reset (dlf);
- logger->init (argc, argv);
+ if (dlf)
+ {
+ dlf->init (argc, argv);
+ }
CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
diff --git a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp
index 296713a2f7f..e0731b074ed 100644
--- a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp
+++ b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp
@@ -26,16 +26,13 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
DANCE_DISABLE_TRACE ();
- auto_ptr<DAnCE::Logger_Service> logger;
-
DAnCE::Logger_Service
- * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger_Backend_Factory");
-
- if (!dlf)
- dlf = new DAnCE::Logger_Service;
+ * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger");
- logger.reset (dlf);
- logger->init (argc, argv);
+ if (dlf)
+ {
+ dlf->init (argc, argv);
+ }
CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
diff --git a/CIAO/ciao/ComponentServer/CIAO_ComponentServer.cpp b/CIAO/ciao/ComponentServer/CIAO_ComponentServer.cpp
index 3cfb0240564..59a6bfad232 100644
--- a/CIAO/ciao/ComponentServer/CIAO_ComponentServer.cpp
+++ b/CIAO/ciao/ComponentServer/CIAO_ComponentServer.cpp
@@ -7,7 +7,6 @@
*/
#include "CIAO_ComponentServer_Task.h"
-#include "ace/Thread_Manager.h"
#include "ciao/Logger/Log_Macros.h"
int ACE_TMAIN (int argc, ACE_TCHAR **argv)
@@ -28,13 +27,13 @@ int ACE_TMAIN (int argc, ACE_TCHAR **argv)
}
catch (CIAO::Deployment::ComponentServer_Task::Error &e)
{
- CIAO_DEBUG (6, (LM_ALERT, CLINFO "CIAO_ComponentServer main: Caught ComponentServer exception: %C\n",
+ CIAO_ERROR (1, (LM_ERROR, CLINFO "CIAO_ComponentServer main: Caught ComponentServer exception: %C\n",
e.err_.c_str ()));
retval = -1;
}
catch (...)
{
- CIAO_DEBUG (6, (LM_ALERT, CLINFO "CIAO_ComponentServer main: Caught unknown exception.\n"));
+ CIAO_ERROR (1, (LM_ERROR, CLINFO "CIAO_ComponentServer main: Caught unknown exception.\n"));
retval = -1;
}
diff --git a/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Task.cpp b/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Task.cpp
index 4ce7873c873..3909a4f0b36 100644
--- a/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Task.cpp
+++ b/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Task.cpp
@@ -31,17 +31,13 @@ namespace CIAO
CIAO_TRACE ("CIAO_ComponentServer_Task::CIAO_ComponentServer_Task ()");
Logger_Service
- *clf = ACE_Dynamic_Service<Logger_Service>::instance ("CIAO_Logger_Backend_Factory");
+ *clf = ACE_Dynamic_Service<Logger_Service>::instance ("CIAO_Logger");
- if (!clf)
+ if (clf)
{
- clf = new Logger_Service;
+ clf->init (argc, argv);
}
- this->logger_.reset (clf);
-
- this->logger_->init (argc, argv);
-
CIAO_DEBUG (9, (LM_TRACE, CLINFO
"CIAO_ComponentServer_Task::CIAO_ComponentServer_Task - "
"Creating ORB\n"));
@@ -50,8 +46,6 @@ namespace CIAO
this->parse_args (argc, argv);
- this->configure_logging_backend ();
-
CIAO::Server_init (this->orb_.in ());
CIAO_DEBUG (9, (LM_TRACE, CLINFO
@@ -308,24 +302,6 @@ namespace CIAO
));
}
-
- void
- ComponentServer_Task::configure_logging_backend (void)
- {
- Logger_Service
- *clf = ACE_Dynamic_Service<Logger_Service>::instance ("CIAO_Logger_Backend_Factory");
- if (clf)
- {
- CIAO_DEBUG (9, (LM_TRACE, CLINFO "ComponentServer_Task::configure_logging_backend - "
- "Replacing logger backend\n"));
- ACE_Log_Msg_Backend * backend = clf->get_logger_backend(this->orb_);
- backend->open(0);
- ACE_Log_Msg::msg_backend (backend);
- ACE_Log_Msg * ace = ACE_Log_Msg::instance();
- ace->clr_flags(ace->flags());
- ace->set_flags(ACE_Log_Msg::CUSTOM);
- }
- }
}
}
diff --git a/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Task.h b/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Task.h
index c3920b47631..ba3f00d5c31 100644
--- a/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Task.h
+++ b/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Task.h
@@ -13,7 +13,6 @@
#include "ace/String_Base.h"
#include "ace/Task.h"
#include "tao/ORB.h"
-#include "ciao/Logger/Logger_Service.h"
namespace CIAO
{
@@ -37,14 +36,10 @@ namespace CIAO
private:
void parse_args (int argc, ACE_TCHAR **argv);
- void configure_logging_backend (void);
-
void usage (void);
CORBA::ORB_var orb_;
- auto_ptr<CIAO::Logger_Service> logger_;
-
ACE_CString uuid_;
ACE_TString callback_ior_str_;
ACE_TString output_file_;
diff --git a/CIAO/ciao/ComponentServer/CIAO_RTComponentServer_Task.cpp b/CIAO/ciao/ComponentServer/CIAO_RTComponentServer_Task.cpp
index f4fd78cee5b..4ce01c6c530 100644
--- a/CIAO/ciao/ComponentServer/CIAO_RTComponentServer_Task.cpp
+++ b/CIAO/ciao/ComponentServer/CIAO_RTComponentServer_Task.cpp
@@ -68,17 +68,13 @@ namespace CIAO
CIAO_TRACE ("CIAO_RTComponentServer_Task::CIAO_RTComponentServer_Task");
Logger_Service
- *clf = ACE_Dynamic_Service<Logger_Service>::instance ("CIAO_Logger_Backend_Factory");
+ *clf = ACE_Dynamic_Service<Logger_Service>::instance ("CIAO_Logger");
- if (!clf)
+ if (clf)
{
- clf = new Logger_Service;
+ clf->init (argc, argv);
}
- this->logger_.reset (clf);
-
- this->logger_->init (argc, argv);
-
CIAO_DEBUG (9, (LM_TRACE, CLINFO
"CIAO_RTComponentServer_Task::CIAO_RTComponentServer_Task - "
"Creating ORB\n"));
@@ -87,8 +83,6 @@ namespace CIAO
this->parse_args (argc, argv);
- this->configure_logging_backend ();
-
CIAO::Server_init (this->orb_.in ());
CIAO_DEBUG (9, (LM_TRACE, CLINFO
@@ -422,24 +416,6 @@ namespace CIAO
));
}
-
- void
- RTComponentServer_Task::configure_logging_backend (void)
- {
- Logger_Service
- *clf = ACE_Dynamic_Service<Logger_Service>::instance ("CIAO_Logger_Backend_Factory");
- if (clf)
- {
- CIAO_DEBUG (9, (LM_TRACE, CLINFO "RTComponentServer_Task::configure_logging_backend - "
- "Replacing logger backend\n"));
- ACE_Log_Msg_Backend * backend = clf->get_logger_backend(this->orb_);
- backend->open(0);
- ACE_Log_Msg::msg_backend (backend);
- ACE_Log_Msg * ace = ACE_Log_Msg::instance();
- ace->clr_flags(ace->flags());
- ace->set_flags(ACE_Log_Msg::CUSTOM);
- }
- }
}
}
diff --git a/CIAO/ciao/ComponentServer/CIAO_RTComponentServer_Task.h b/CIAO/ciao/ComponentServer/CIAO_RTComponentServer_Task.h
index ab6c0b0860e..4212bcb7751 100644
--- a/CIAO/ciao/ComponentServer/CIAO_RTComponentServer_Task.h
+++ b/CIAO/ciao/ComponentServer/CIAO_RTComponentServer_Task.h
@@ -13,7 +13,6 @@
#include "ace/String_Base.h"
#include "ace/Task.h"
#include "tao/ORB.h"
-#include "ciao/Logger/Logger_Service.h"
#include "tao/RTPortableServer/RTPortableServer.h"
namespace CIAO
@@ -38,14 +37,10 @@ namespace CIAO
private:
void parse_args (int argc, ACE_TCHAR **argv);
- void configure_logging_backend (void);
-
void usage (void);
CORBA::ORB_var orb_;
- auto_ptr<CIAO::Logger_Service> logger_;
-
ACE_CString uuid_;
ACE_TString callback_ior_str_;
ACE_TString output_file_;
diff --git a/CIAO/ciao/Logger/CIAOLoggerFactory.h b/CIAO/ciao/Logger/CIAOLoggerFactory.h
deleted file mode 100644
index 3abee97aaf1..00000000000
--- a/CIAO/ciao/Logger/CIAOLoggerFactory.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// $Id$
-#ifndef LOGGERFACTORY_H_
-#define LOGGERFACTORY_H_
-
-#include "ace/Service_Object.h"
-#include "tao/ORB.h"
-#include "ace/Log_Msg_Backend.h"
-
-namespace CIAO
- {
-
- class CIAOLoggerFactory : public ACE_Service_Object
- {
- public:
- virtual ACE_Log_Msg_Backend * get_logger_backend (CORBA::ORB_ptr orb) = 0;
- };
-} // CIAO
-
-#endif /*LOGGERFACTORY_H_*/
diff --git a/CIAO/ciao/Logger/File_Logger_Backend.cpp b/CIAO/ciao/Logger/File_Logger_Backend.cpp
deleted file mode 100644
index 46b23fd011c..00000000000
--- a/CIAO/ciao/Logger/File_Logger_Backend.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-// $Id$
-#include "File_Logger_Backend.h"
-#include "ace/OS_NS_stdio.h"
-#include "ace/Log_Record.h"
-#include "ace/Log_Msg.h"
-#include "ciao/Logger/Log_Macros.h"
-
-namespace CIAO
-{
-
- int
- File_Logger_Backend::open (const ACE_TCHAR *)
- {
- CIAO_DEBUG (7, (LM_DEBUG, CLINFO "Setting logger's output to file \"%s\"", this->filename_.c_str()));
- this->fh_ = ACE_OS::fopen (this->filename_.c_str(), "w");
- if (0 == this->fh_)
- {
- ACE_CString s = "Failed to open log file \"";
- s += ACE_TEXT_ALWAYS_CHAR (this->filename_.c_str ());
- s += "\"";
- throw LoggerError (s.c_str());
- }
- return 0;
- }
-
- int
- File_Logger_Backend::close (void)
- {
- if (0 != this->fh_)
- {
- ACE_OS::fclose (this->fh_);
- this->fh_ = 0;
- }
- return 0;
- }
-
- ssize_t
- File_Logger_Backend::log (ACE_Log_Record &log_record)
- {
- int const res = log_record.print (0, ACE_Log_Msg::VERBOSE, this->fh_);
- ACE_OS::fflush (this->fh_);
- return res;
- }
-
-}
-
diff --git a/CIAO/ciao/Logger/File_Logger_Backend.h b/CIAO/ciao/Logger/File_Logger_Backend.h
deleted file mode 100644
index 0ca07b67bac..00000000000
--- a/CIAO/ciao/Logger/File_Logger_Backend.h
+++ /dev/null
@@ -1,51 +0,0 @@
-// $Id$
-#ifndef FILE_LOGGER_BACKEND_H_
-#define FILE_LOGGER_BACKEND_H_
-
-#include "ace/Log_Msg_Backend.h"
-#include "ace/SString.h"
-
-#include "CIAO_Logger_Export.h"
-
-namespace CIAO
- {
-
- class CIAO_Logger_Export LoggerError
- {
- public:
- LoggerError (const char * msg)
- : errmsg_ (msg) {};
- ACE_CString errmsg_;
- };
-
- class CIAO_Logger_Export File_Logger_Backend : public ACE_Log_Msg_Backend
- {
- public:
- File_Logger_Backend (const ACE_TCHAR * fname)
- : fh_ (0), filename_ (fname) {}
-
- virtual ~File_Logger_Backend (void)
- {
- this->close();
- };
-
- virtual int open (const ACE_TCHAR *logger_key);
-
- virtual int reset (void)
- {
- this->close();
- return this->open (0);
- };
-
- virtual int close (void);
-
- virtual ssize_t log (ACE_Log_Record &log_record);
-
- private:
- FILE * fh_;
- ACE_TString filename_;
- };
-
-} // CIAO
-
-#endif /*FILE_LOGGER_BACKEND_H_*/
diff --git a/CIAO/ciao/Logger/Logger.mpc b/CIAO/ciao/Logger/Logger.mpc
index fa370d07bea..987e3a384c4 100644
--- a/CIAO/ciao/Logger/Logger.mpc
+++ b/CIAO/ciao/Logger/Logger.mpc
@@ -1,12 +1,11 @@
// -*- MPC -*-
// $Id$
-project(CIAO_Logger): ciao_lib, messaging {
+project(CIAO_Logger): ciao_lib, taolib, acelib {
sharedname = CIAO_Logger
dynamicflags = CIAO_LOGGER_BUILD_DLL
Source_Files {
- File_Logger_Backend.cpp
Logger_Service.cpp
Log_Macros.cpp
}
diff --git a/CIAO/ciao/Logger/Logger_Service.cpp b/CIAO/ciao/Logger/Logger_Service.cpp
index cc3438d0fda..b12a0c35d27 100644
--- a/CIAO/ciao/Logger/Logger_Service.cpp
+++ b/CIAO/ciao/Logger/Logger_Service.cpp
@@ -5,6 +5,13 @@
#include "ace/CORBA_macros.h"
#include "ace/Env_Value_T.h"
#include "tao/SystemException.h"
+#include "ace/Service_Config.h"
+
+#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
+// Needed to set ACE_LOG_MSG::msg_ostream()
+// FUZZ: disable check_for_streams_include
+# include "ace/streams.h"
+#endif /* !ACE_LACKS_IOSTREAM_TOTALLY */
namespace CIAO
{
@@ -39,6 +46,40 @@ namespace CIAO
CIAO_DISABLE_TRACE ();
}
+ if (this->filename_.length () > 0)
+ {
+#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
+
+ FILE* output_stream = ACE_OS::fopen (this->filename_.c_str (), ACE_TEXT ("a"));
+
+ ACE_LOG_MSG->msg_ostream (output_stream, 1);
+
+#else /* ! ACE_LACKS_IOSTREAM_TOTALLY */
+
+ ofstream* output_stream = 0;
+
+ ACE_NEW_THROW_EX (output_stream,
+ ofstream (),
+ CORBA::NO_MEMORY (
+ CORBA::SystemException::_tao_minor_code (
+ 0,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+
+ output_stream->open (ACE_TEXT_ALWAYS_CHAR (this->filename_.c_str ()),
+ ios::out | ios::app);
+
+ if (!output_stream->bad ())
+ {
+ ACE_LOG_MSG->msg_ostream (output_stream, 1);
+ }
+
+#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
+
+ ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR | ACE_Log_Msg::LOGGER);
+ ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
+ }
+
return 0;
}
@@ -87,17 +128,19 @@ namespace CIAO
}
}
- ACE_Log_Msg_Backend *
- Logger_Service::get_logger_backend (CORBA::ORB_ptr)
+ int
+ Logger_Service::Initializer (void)
{
- File_Logger_Backend * the_backend = 0;
- ACE_NEW_THROW_EX (the_backend,
- File_Logger_Backend (this->filename_.c_str()),
- CORBA::NO_MEMORY());
- return the_backend;
+ return ACE_Service_Config::process_directive (ace_svc_desc_Logger_Service);
}
} // CIAO
using namespace CIAO;
+ACE_STATIC_SVC_DEFINE (Logger_Service,
+ ACE_TEXT ("CIAO_Logger"),
+ ACE_SVC_OBJ_T,
+ &ACE_SVC_NAME (Logger_Service),
+ ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
+ 0)
ACE_FACTORY_DEFINE (CIAO_Logger, Logger_Service)
diff --git a/CIAO/ciao/Logger/Logger_Service.h b/CIAO/ciao/Logger/Logger_Service.h
index a49cfbf71de..890c9c07a93 100644
--- a/CIAO/ciao/Logger/Logger_Service.h
+++ b/CIAO/ciao/Logger/Logger_Service.h
@@ -4,28 +4,29 @@
#define CIAO_LOGGER_SERVICE_H_
#include "CIAO_Logger_Export.h"
-#include "CIAOLoggerFactory.h"
-#include "File_Logger_Backend.h"
+#include "ace/Service_Object.h"
namespace CIAO
{
+ class CIAO_Logger_Export Logger_Service : public ACE_Service_Object
+ {
+ public:
+ Logger_Service (void);
+ virtual int init (int argc, ACE_TCHAR * argv[]);
- class CIAO_Logger_Export Logger_Service : public CIAOLoggerFactory
- {
- public:
- Logger_Service (void);
+ static int Initializer (void);
+ private:
+ void parse_args (int argc, ACE_TCHAR **argv);
- virtual int init (int argc, ACE_TCHAR * argv[]);
- virtual ACE_Log_Msg_Backend * get_logger_backend (CORBA::ORB_ptr orb);
+ ACE_TString filename_;
+ bool trace_;
+ };
+ }
- private:
- void parse_args (int argc, ACE_TCHAR **argv);
-
- ACE_TString filename_;
- bool trace_;
- };
-}
+static int TAO_Requires_CIAO_Logger_Service_Initializer =
+ CIAO::Logger_Service::Initializer ();
+ACE_STATIC_SVC_DECLARE (Logger_Service)
ACE_FACTORY_DECLARE (CIAO_Logger, Logger_Service)
#endif /*LOGGER_SERVICE_H_*/