/usr/include/citygml/citygmllogger.h is in libcitygml-dev 2.0-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #pragma once
#include <citygml/citygml_api.h>
#include <sstream>
namespace citygml {
class LIBCITYGML_EXPORT CityGMLLogger {
public:
enum class LOGLEVEL {
LL_ERROR,
LL_WARNING,
LL_INFO,
LL_DEBUG,
LL_TRACE
};
/**
* @brief logs a message. Might be called from different threads.
*/
virtual void log(LOGLEVEL level, const std::string& message, const char* file=nullptr, int line=-1) const = 0;
virtual bool isEnabledFor(LOGLEVEL level) const = 0;
};
/**
* @brief logs a message for a certain log level
* @param logger a pointer to a CityGMLLogger
* @param level the CityGMLLogger::LOGLEVEL
* @param message a string or a stream expression
*/
#define CITYGML_LOG(logger, level, message) \
do { \
if (logger->isEnabledFor(level)) { \
std::stringstream ss; \
ss << message; \
logger->log(level, ss.str(), __FILE__, __LINE__); \
} \
} while (0);
#define CITYGML_LOG_ERROR(logger, message) CITYGML_LOG(logger, citygml::CityGMLLogger::LOGLEVEL::LL_ERROR, message)
#define CITYGML_LOG_WARN(logger, message) CITYGML_LOG(logger, citygml::CityGMLLogger::LOGLEVEL::LL_WARNING, message)
#define CITYGML_LOG_INFO(logger, message) CITYGML_LOG(logger, citygml::CityGMLLogger::LOGLEVEL::LL_INFO, message)
#define CITYGML_LOG_DEBUG(logger, message) CITYGML_LOG(logger, citygml::CityGMLLogger::LOGLEVEL::LL_DEBUG, message)
#define CITYGML_LOG_TRACE(logger, message) CITYGML_LOG(logger, citygml::CityGMLLogger::LOGLEVEL::LL_TRACE, message)
}
|