treelite
Classes | Namespaces | Macros | Typedefs | Functions
logging.h File Reference

logging facility for Treelite More...

#include <treelite/error.h>
#include <treelite/thread_local.h>
#include <cstdio>
#include <ctime>
#include <functional>
#include <iostream>
#include <memory>
#include <sstream>
#include <string>
Include dependency graph for logging.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  treelite::DateLogger
 
class  treelite::LogMessageFatal
 
class  treelite::LogMessage
 
class  treelite::LogMessageWarning
 
class  treelite::LogCallbackRegistry
 

Namespaces

 treelite
 

Macros

#define TREELITE_ALWAYS_INLINE   inline
 
#define DEFINE_CHECK_FUNC(name, op)
 
#define TREELITE_CHECK_BINARY_OP(name, op, x, y)
 
#define TREELITE_CHECK(x)
 
#define TREELITE_CHECK_LT(x, y)   TREELITE_CHECK_BINARY_OP(_LT, <, x, y)
 
#define TREELITE_CHECK_GT(x, y)   TREELITE_CHECK_BINARY_OP(_GT, >, x, y)
 
#define TREELITE_CHECK_LE(x, y)   TREELITE_CHECK_BINARY_OP(_LE, <=, x, y)
 
#define TREELITE_CHECK_GE(x, y)   TREELITE_CHECK_BINARY_OP(_GE, >=, x, y)
 
#define TREELITE_CHECK_EQ(x, y)   TREELITE_CHECK_BINARY_OP(_EQ, ==, x, y)
 
#define TREELITE_CHECK_NE(x, y)   TREELITE_CHECK_BINARY_OP(_NE, !=, x, y)
 
#define TREELITE_LOG_INFO   ::treelite::LogMessage(__FILE__, __LINE__)
 
#define TREELITE_LOG_ERROR   TREELITE_LOG_INFO
 
#define TREELITE_LOG_WARNING   ::treelite::LogMessageWarning(__FILE__, __LINE__)
 
#define TREELITE_LOG_FATAL   ::treelite::LogMessageFatal(__FILE__, __LINE__)
 
#define TREELITE_LOG(severity)   TREELITE_LOG_##severity.stream()
 

Typedefs

using treelite::LogCallbackRegistryStore = ThreadLocalStore< LogCallbackRegistry >
 

Functions

template<typename X , typename Y >
std::unique_ptr< std::string > treelite::LogCheckFormat (X const &x, Y const &y)
 

Detailed Description

logging facility for Treelite

Copyright (c) 2017-2023 by Contributors

Author
Hyunsu Cho

Macro Definition Documentation

◆ DEFINE_CHECK_FUNC

#define DEFINE_CHECK_FUNC (   name,
  op 
)
Value:
template <typename X, typename Y> \
TREELITE_ALWAYS_INLINE std::unique_ptr<std::string> LogCheck##name(const X& x, const Y& y) { \
if (x op y) \
return nullptr; \
return LogCheckFormat(x, y); \
} \
TREELITE_ALWAYS_INLINE std::unique_ptr<std::string> LogCheck##name(int x, int y) { \
return LogCheck##name<int, int>(x, y); \
}
std::unique_ptr< std::string > LogCheckFormat(X const &x, Y const &y)
Definition: logging.h:24

◆ TREELITE_ALWAYS_INLINE

#define TREELITE_ALWAYS_INLINE   inline

◆ TREELITE_CHECK

#define TREELITE_CHECK (   x)
Value:
if (!(x)) \
::treelite::LogMessageFatal(__FILE__, __LINE__).stream() << "Check failed: " #x << ": "

◆ TREELITE_CHECK_BINARY_OP

#define TREELITE_CHECK_BINARY_OP (   name,
  op,
  x,
 
)
Value:
if (auto __treelite__log__err = ::treelite::LogCheck##name(x, y)) \
::treelite::LogMessageFatal(__FILE__, __LINE__).stream() \
<< "Check failed: " << #x " " #op " " #y << *__treelite__log__err << ": "

◆ TREELITE_CHECK_EQ

#define TREELITE_CHECK_EQ (   x,
 
)    TREELITE_CHECK_BINARY_OP(_EQ, ==, x, y)

◆ TREELITE_CHECK_GE

#define TREELITE_CHECK_GE (   x,
 
)    TREELITE_CHECK_BINARY_OP(_GE, >=, x, y)

◆ TREELITE_CHECK_GT

#define TREELITE_CHECK_GT (   x,
 
)    TREELITE_CHECK_BINARY_OP(_GT, >, x, y)

◆ TREELITE_CHECK_LE

#define TREELITE_CHECK_LE (   x,
 
)    TREELITE_CHECK_BINARY_OP(_LE, <=, x, y)

◆ TREELITE_CHECK_LT

#define TREELITE_CHECK_LT (   x,
 
)    TREELITE_CHECK_BINARY_OP(_LT, <, x, y)

◆ TREELITE_CHECK_NE

#define TREELITE_CHECK_NE (   x,
 
)    TREELITE_CHECK_BINARY_OP(_NE, !=, x, y)

◆ TREELITE_LOG

#define TREELITE_LOG (   severity)    TREELITE_LOG_##severity.stream()

◆ TREELITE_LOG_ERROR

#define TREELITE_LOG_ERROR   TREELITE_LOG_INFO

◆ TREELITE_LOG_FATAL

#define TREELITE_LOG_FATAL   ::treelite::LogMessageFatal(__FILE__, __LINE__)

◆ TREELITE_LOG_INFO

#define TREELITE_LOG_INFO   ::treelite::LogMessage(__FILE__, __LINE__)

◆ TREELITE_LOG_WARNING

#define TREELITE_LOG_WARNING   ::treelite::LogMessageWarning(__FILE__, __LINE__)