/** * Copyright (C) 2017-2018, U.S. Government */ #ifndef HIRS_PROVISIONERTPM2_INCLUDE_LOGGER_H_ #define HIRS_PROVISIONERTPM2_INCLUDE_LOGGER_H_ #include #include #include namespace hirs { namespace log { /** * The Logger class provides a wrapper for log4cplus that allows for * getting standardized Loggers in the TPM 2 Provisioner Library. */ class Logger { private: static const char* const kDefaultProvisionerLoggerName; static const char* const kPropFileLocation; const log4cplus::Logger kLogger; explicit Logger(std::string loggerName); enum class LogLevel { DEBUG, ERROR, FATAL, INFO, TRACE, WARN }; void log(const LogLevel& logLevel, const std::string& msg, const std::exception* ex) const; static void setThresholdFromLoggingProperties(log4cplus::Logger logger); public: static Logger getDefaultLogger(); static Logger getLogger(const std::string& loggerName); void debug(const std::string& msg) const; void debug(const std::string& msg, const std::exception* ex) const; void error(const std::string& msg) const; void error(const std::string& msg, const std::exception* ex) const; void fatal(const std::string& msg) const; void fatal(const std::string& msg, const std::exception* ex) const; void info(const std::string& msg) const; void info(const std::string& msg, const std::exception* ex) const; void trace(const std::string& msg) const; void trace(const std::string& msg, const std::exception* ex) const; void warn(const std::string& msg) const; void warn(const std::string& msg, const std::exception* ex) const; }; } // namespace log } // namespace hirs #endif // HIRS_PROVISIONERTPM2_INCLUDE_LOGGER_H_