#include "generic_logger.h" #include 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(); } } }