32    Debug = log4cplus::DEBUG_LOG_LEVEL,
 
   33    Info =  log4cplus::INFO_LOG_LEVEL,
 
   34    Warn =  log4cplus::WARN_LOG_LEVEL,
 
   35    Error = log4cplus::ERROR_LOG_LEVEL,
 
   36    Fatal = log4cplus::FATAL_LOG_LEVEL
 
 
   45class ColoredPatternLayout: 
public log4cplus::PatternLayout
 
   48    explicit ColoredPatternLayout(
const std::string& progName_, 
bool useColor = 
true)
 
   49        : log4cplus::PatternLayout(
 
   50            progName_.empty() ? std::string{
"%5p: %m%n"} : (progName_ + 
" %5p: %m%n"))
 
   52        , mProgName(progName_)
 
   56    ~ColoredPatternLayout()
 override {}
 
   58    const std::string& progName()
 const { 
return mProgName; }
 
   60    void formatAndAppend(log4cplus::tostream& strm,
 
   61        const log4cplus::spi::InternalLoggingEvent& event)
 override 
   64            log4cplus::PatternLayout::formatAndAppend(strm, event);
 
   67        log4cplus::tostringstream s;
 
   68        switch (event.getLogLevel()) {
 
   69            case log4cplus::DEBUG_LOG_LEVEL: s << 
"\033[32m"; 
break; 
 
   70            case log4cplus::ERROR_LOG_LEVEL:
 
   71            case log4cplus::FATAL_LOG_LEVEL: s << 
"\033[31m"; 
break; 
 
   72            case log4cplus::INFO_LOG_LEVEL:  s << 
"\033[36m"; 
break; 
 
   73            case log4cplus::WARN_LOG_LEVEL:  s << 
"\033[35m"; 
break; 
 
   75        log4cplus::PatternLayout::formatAndAppend(s, event);
 
   76        strm << s.str() << 
"\033[0m" << std::flush;
 
   82  #pragma warning disable:1478 
   83#elif defined(__clang__) 
   84  #pragma clang diagnostic push 
   85  #pragma clang diagnostic ignored "-Wdeprecated-declarations" 
   86#elif defined(__GNUC__) 
   87  #pragma GCC diagnostic push 
   88  #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 
   91#if defined(LOG4CPLUS_VERSION) && defined(LOG4CPLUS_MAKE_VERSION) 
   92  #if LOG4CPLUS_VERSION >= LOG4CPLUS_MAKE_VERSION(2, 0, 0) 
   94    using Ptr = std::unique_ptr<log4cplus::Layout>;
 
   96    using Ptr = std::auto_ptr<log4cplus::Layout>;
 
   99    using Ptr = std::auto_ptr<log4cplus::Layout>;
 
  102    static Ptr create(
const std::string& progName_, 
bool useColor = 
true)
 
  104        return Ptr{
new ColoredPatternLayout{progName_, useColor}};
 
  109#elif defined(__clang__) 
  110  #pragma clang diagnostic pop 
  111#elif defined(__GNUC__) 
  112  #pragma GCC diagnostic pop 
  116    bool mUseColor = 
true;
 
  117    std::string mProgName;
 
  121inline log4cplus::Logger
 
  124    return log4cplus::Logger::getInstance(LOG4CPLUS_TEXT(
"openvdb"));
 
  128inline log4cplus::SharedAppenderPtr
 
  131    return getLogger().getAppender(LOG4CPLUS_TEXT(
"OPENVDB"));
 
  143    switch (internal::getLogger().getLogLevel()) {
 
  145        case log4cplus::INFO_LOG_LEVEL:  
return Level::Info;
 
  146        case log4cplus::WARN_LOG_LEVEL:  
return Level::Warn;
 
  148        case log4cplus::FATAL_LOG_LEVEL: 
break;
 
 
  158    internal::getLogger().setLogLevel(
static_cast<log4cplus::LogLevel
>(lvl));
 
 
  168    for (
int i = 1; i < argc; ++i) { 
 
  169        const std::string arg{argv[i]};
 
  176        else { remove = 
false; }
 
  177        if (remove) argv[i] = 
nullptr;
 
  179    auto end = std::remove(argv + 1, argv + argc, 
nullptr);
 
  180    argc = 
static_cast<int>(end - argv);
 
 
  190    if (
auto appender = internal::getAppender()) {
 
  191        appender->setLayout(internal::ColoredPatternLayout::create(progName, useColor));
 
 
  200    log4cplus::initialize();
 
  202    if (internal::getAppender()) 
return; 
 
  205    auto logger = internal::getLogger();
 
  209    logger.setAdditivity(
false);
 
  212    if (
auto appender = log4cplus::SharedAppenderPtr{
new log4cplus::ConsoleAppender}) {
 
  213        appender->setName(LOG4CPLUS_TEXT(
"OPENVDB"));
 
  214        logger.addAppender(appender);
 
 
  233    auto progName = (argc > 0 ? argv[0] : 
"");
 
  234    if (
const char* ptr = ::strrchr(progName, 
'/')) progName = ptr + 1;
 
 
 
  288enum class Level { Debug, Info, Warn, Error, Fatal };
 
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition version.h.in:121