Files
qt6-migration-pipeline/Lts/DDS/Generic/generic_logger.cpp
T

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();
}
}
}