60 lines
1.3 KiB
C++
Executable File
60 lines
1.3 KiB
C++
Executable File
|
|
|
|
|
|
#include "generic_logger.h"
|
|
|
|
#include <NGLLogger/NGLLoggerBootstrap.h>
|
|
|
|
namespace DDS
|
|
{
|
|
static const char *genericLoggerName(DataType ddsDataType)
|
|
{
|
|
switch (ddsDataType)
|
|
{
|
|
case DataType::DATA_TYPE_UNKNOWN:
|
|
return "Unknown.";
|
|
case DataType::DATA_READER:
|
|
return "DataReader.";
|
|
case DataType::DATA_WRITER:
|
|
return "DataWriter.";
|
|
case DataType::DYNAMIC_DATA_WRITER:
|
|
return "DynamicDataWriter.";
|
|
case DataType::DYNAMIC_DATA_READER:
|
|
return "DynamicDataReader.";
|
|
case DataType::DATA_TOPIC_SERVER:
|
|
return "DTS.";
|
|
case DataType::DATA_TOPIC_CLIENT:
|
|
return "DTC.";
|
|
case DataType::FUNCTION_TOPIC_SERVER:
|
|
return "FTS.";
|
|
case DataType::FUNCTION_TOPIC_CLIENT:
|
|
return "FTC.";
|
|
}
|
|
return "";
|
|
}
|
|
|
|
|
|
LOGGER_T getLogger(const char *name, DataType dt)
|
|
{
|
|
static const char ns[] = "DDS.";
|
|
const char *dtName = genericLoggerName(dt);
|
|
const size_t dtNameLen = strlen(dtName);
|
|
std::string loggerName;
|
|
const size_t len = strlen(name);
|
|
loggerName.reserve(sizeof(ns) + len + dtNameLen);
|
|
loggerName.append(ns, sizeof(ns) - 1);
|
|
loggerName.append(dtName, dtNameLen);
|
|
loggerName.append(name, len);
|
|
|
|
try {
|
|
return NGL::NGLLoggerBootstrap::getNGLRootLogger().
|
|
getNGLLogger( loggerName );
|
|
} catch ( const std::exception &ex )
|
|
{
|
|
fprintf(stderr, "Error retrieving logger: %s", ex.what());
|
|
abort();
|
|
}
|
|
}
|
|
|
|
}
|