summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/LoggerAdminI.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2014-09-17 11:44:18 -0400
committerBernard Normier <bernard@zeroc.com>2014-09-17 11:44:18 -0400
commit0e51b4dbbbaec5bdb9772fc0d7b61263ae6304d3 (patch)
treebbe41a2b50ee81ef82b90f639d95f1974c241378 /cpp/src/Ice/LoggerAdminI.cpp
parentJS modules fixes/simplifications (diff)
downloadice-0e51b4dbbbaec5bdb9772fc0d7b61263ae6304d3.tar.bz2
ice-0e51b4dbbbaec5bdb9772fc0d7b61263ae6304d3.tar.xz
ice-0e51b4dbbbaec5bdb9772fc0d7b61263ae6304d3.zip
Simplified creation of Admin facets in IceBox; simplified test for Admin enabled (Ice.Admin.Enabled if defined, otherwise check Ice.Admin.Endpoints and no other property)
Diffstat (limited to 'cpp/src/Ice/LoggerAdminI.cpp')
-rw-r--r--cpp/src/Ice/LoggerAdminI.cpp68
1 files changed, 35 insertions, 33 deletions
diff --git a/cpp/src/Ice/LoggerAdminI.cpp b/cpp/src/Ice/LoggerAdminI.cpp
index 3a59d2e7880..a673a695f6c 100644
--- a/cpp/src/Ice/LoggerAdminI.cpp
+++ b/cpp/src/Ice/LoggerAdminI.cpp
@@ -25,11 +25,13 @@ using namespace std;
namespace
{
-class LoggerAdminI : public LoggerAdmin
+const char* traceCategory = "Admin.Logger";
+
+class LoggerAdminI : public Ice::LoggerAdmin
{
public:
- LoggerAdminI(const string&, const PropertiesPtr&);
+ LoggerAdminI(const PropertiesPtr&);
virtual void attachRemoteLogger(const RemoteLoggerPrx&, const LogMessageTypeSeq&,
const StringSeq&, Int, const Current&);
@@ -44,11 +46,6 @@ public:
void deadRemoteLogger(const RemoteLoggerPrx&, const LoggerPtr&, const LocalException&, const string&);
- const string& getFacetName() const
- {
- return _facetName;
- }
-
const int getTraceLevel() const
{
return _traceLevel;
@@ -65,8 +62,6 @@ private:
void remoteCallCompleted(const AsyncResultPtr&);
- const string _facetName;
-
IceUtil::Mutex _mutex;
list<LogMessage> _queue;
int _logCount; // non-trace messages
@@ -139,11 +134,11 @@ public:
typedef IceUtil::Handle<Job> JobPtr;
-class LoggerAdminLoggerI : public LoggerAdminLogger
+class LoggerAdminLoggerI : public IceInternal::LoggerAdminLogger
{
public:
- LoggerAdminLoggerI(const std::string&, const PropertiesPtr&, const LoggerPtr&);
+ LoggerAdminLoggerI(const PropertiesPtr&, const LoggerPtr&);
virtual void print(const std::string&);
virtual void trace(const std::string&, const std::string&);
@@ -153,20 +148,21 @@ public:
virtual LoggerPtr cloneWithPrefix(const std::string&);
virtual ObjectPtr getFacet() const;
+
virtual void destroy();
-
+
const LoggerPtr& getLocalLogger() const
{
return _localLogger;
}
-
+
void run();
private:
void log(const LogMessage&);
- const LoggerPtr _localLogger;
+ LoggerPtr _localLogger;
const LoggerAdminIPtr _loggerAdmin;
IceUtil::Monitor<IceUtil::Mutex> _monitor;
@@ -320,8 +316,7 @@ createSendLogCommunicator(const CommunicatorPtr& communicator, const LoggerPtr&
// LoggerAdminI
//
-LoggerAdminI::LoggerAdminI(const string& name, const PropertiesPtr& props) :
- _facetName(name),
+LoggerAdminI::LoggerAdminI(const PropertiesPtr& props) :
_logCount(0),
_maxLogCount(props->getPropertyAsIntWithDefault("Ice.Admin.Logger.KeepLogs", 100)),
_traceCount(0),
@@ -371,7 +366,7 @@ LoggerAdminI::attachRemoteLogger(const RemoteLoggerPrx& prx,
{
if(_traceLevel > 0)
{
- Trace trace(logger, _facetName);
+ Trace trace(logger, traceCategory);
trace << "rejecting `" << remoteLogger << "' with RemoteLoggerAlreadyAttachedException";
}
@@ -386,7 +381,7 @@ LoggerAdminI::attachRemoteLogger(const RemoteLoggerPrx& prx,
if(_traceLevel > 0)
{
- Trace trace(logger, _facetName);
+ Trace trace(logger, traceCategory);
trace << "attached `" << remoteLogger << "'";
}
@@ -423,7 +418,7 @@ LoggerAdminI::detachRemoteLogger(const RemoteLoggerPrx& remoteLogger, const Curr
if(_traceLevel > 0)
{
- Trace trace(current.adapter->getCommunicator()->getLogger(), _facetName);
+ Trace trace(current.adapter->getCommunicator()->getLogger(), traceCategory);
trace << "detached `" << remoteLogger << "'";
}
}
@@ -563,7 +558,7 @@ LoggerAdminI::deadRemoteLogger(const RemoteLoggerPrx& remoteLogger,
{
if(_traceLevel > 0)
{
- Trace trace(logger, _facetName);
+ Trace trace(logger, traceCategory);
trace << "detached `" << remoteLogger << "' because " << operation << " raised:\n" << ex;
}
}
@@ -586,7 +581,7 @@ LoggerAdminI::remoteCallCompleted(const AsyncResultPtr& r)
if(_traceLevel > 1)
{
LoggerPtr logger = LoggerPtr::dynamicCast(r->getCookie());
- Trace trace(logger, _facetName);
+ Trace trace(logger, traceCategory);
trace << r->getOperation() << " on `" << r->getProxy() << "' completed successfully";
}
}
@@ -599,22 +594,30 @@ LoggerAdminI::remoteCallCompleted(const AsyncResultPtr& r)
}
-
//
// LoggerAdminLoggerI
//
-LoggerAdminLoggerI::LoggerAdminLoggerI(const string& facetName,
- const PropertiesPtr& props,
+LoggerAdminLoggerI::LoggerAdminLoggerI(const PropertiesPtr& props,
const LoggerPtr& localLogger) :
- _localLogger(localLogger),
- _loggerAdmin(new LoggerAdminI(facetName, props)),
+ _loggerAdmin(new LoggerAdminI(props)),
_destroyed(false)
{
//
// There is currently no way to have a null local logger
//
- assert(_localLogger != 0);
+ assert(localLogger != 0);
+
+ LoggerAdminLoggerI* wrapper = dynamic_cast<LoggerAdminLoggerI*>(localLogger.get());
+ if(wrapper)
+ {
+ // use the underlying local logger
+ _localLogger = wrapper->getLocalLogger();
+ }
+ else
+ {
+ _localLogger = localLogger;
+ }
}
void
@@ -723,7 +726,7 @@ LoggerAdminLoggerI::run()
{
if(_loggerAdmin->getTraceLevel() > 1)
{
- Trace trace(_localLogger, _loggerAdmin->getFacetName());
+ Trace trace(_localLogger, traceCategory);
trace << "send log thread started";
}
@@ -748,7 +751,7 @@ LoggerAdminLoggerI::run()
{
if(_loggerAdmin->getTraceLevel() > 1)
{
- Trace trace(_localLogger, _loggerAdmin->getFacetName());
+ Trace trace(_localLogger, traceCategory);
trace << "sending log message to `" << *p << "'";
}
@@ -768,7 +771,7 @@ LoggerAdminLoggerI::run()
if(_loggerAdmin->getTraceLevel() > 1)
{
- Trace trace(_localLogger, _loggerAdmin->getFacetName());
+ Trace trace(_localLogger, traceCategory);
trace << "send log thread completed";
}
}
@@ -799,11 +802,10 @@ namespace IceInternal
{
LoggerAdminLoggerPtr
-createLoggerAdminLogger(const string& facetName,
- const PropertiesPtr& props,
+createLoggerAdminLogger(const PropertiesPtr& props,
const LoggerPtr& localLogger)
{
- return new LoggerAdminLoggerI(facetName, props, localLogger);
+ return new LoggerAdminLoggerI(props, localLogger);
}
}