oak - a modern logger 1.1.0
Loading...
Searching...
No Matches
oak.hpp File Reference
#include <unistd.h>
#include <iostream>
#include <vector>
#include <thread>
#include <mutex>
#include <fstream>
#include <queue>
#include <condition_variable>
#include <filesystem>
#include <print>
#include <memory>
#include <functional>
#include <expected>
#include "oak.impl"

Go to the source code of this file.

Data Structures

class  oak::Writer
 
class  oak::FileWriter
 
class  oak::StdoutWriter
 
class  oak::Logger
 
struct  std::formatter< oak::Level >
 
struct  std::formatter< oak::Flags >
 

Namespaces

namespace  oak
 

Macros

#define OAK_LOG(level, ...)   oak::log2(level, __FILE__, __LINE__, __VA_ARGS__)
 
#define OAK_DEBUG(...)   OAK_LOG(oak::Level::Debug, __VA_ARGS__)
 
#define OAK_INFO(...)   OAK_LOG(oak::Level::Info, __VA_ARGS__)
 
#define OAK_WARN(...)   OAK_LOG(oak::Level::Warn, __VA_ARGS__)
 
#define OAK_ERROR(...)   OAK_LOG(oak::Level::Error, __VA_ARGS__)
 
#define OAK_LOG2(logger, level, ...)   logger->log2(level, __FILE__, __LINE__, __VA_ARGS__)
 
#define OAK_DEBUG2(logger, ...)   OAK_LOG2(logger, oak::Level::Debug, __VA_ARGS__)
 
#define OAK_INFO2(logger, ...)   OAK_LOG2(logger, oak::Level::Info, __VA_ARGS__)
 
#define OAK_WARN2(logger, ...)   OAK_LOG2(logger, oak::Level::Warn, __VA_ARGS__)
 
#define OAK_ERROR2(logger, ...)   OAK_LOG2(logger, oak::Level::Error, __VA_ARGS__)
 

Enumerations

enum class  oak::Level {
  oak::Debug = 0 , oak::Info = 1 , oak::Warn = 2 , oak::Error = 3 ,
  oak::Disabled = 4 , oak::Default = Info
}
 
enum class  oak::Flags : unsigned int {
  oak::None = 0 , oak::Level = 1 , oak::Date = 1 << 1 , oak::Time = 1 << 2 ,
  oak::Pid = 1 << 3 , oak::Tid = 1 << 4 , oak::Json = 1 << 5 , oak::Color = 1 << 6 ,
  oak::File = 1 << 7 , oak::Line = 1 << 8 , oak::Default = Level
}
 

Functions

std::string oak::level_to_string (enum Level level)
 
Loggeroak::get_global ()
 
template<typename... Args>
static void oak::log2 (enum oak::Level level, const char *file, int line, const char *fmt, Args &&...args)
 
template<typename... Args>
static void oak::log (enum oak::Level level, const char *fmt, Args &&...args)
 
template<typename W , typename ... Args>
static void oak::add_writer (Args &&...init_args)
 
static bool oak::remove_writer (const std::string &name)
 
static enum Level oak::get_level ()
 
static void oak::set_level (enum Level level)
 
static unsigned int oak::get_flags ()
 
template<typename ... F>
static void oak::set_flags (F &&...flags)
 
template<typename ... F>
static void oak::add_flags (F &&...flags)
 
static std::expected< int, std::string > oak::load_config_file (const std::filesystem::path &file)
 
static void oak::enable_event (unsigned int id, const std::string &name)
 
static void oak::disable_event (unsigned int id)
 

Macro Definition Documentation

◆ OAK_DEBUG

#define OAK_DEBUG (   ...)    OAK_LOG(oak::Level::Debug, __VA_ARGS__)

Definition at line 30 of file oak.hpp.

◆ OAK_DEBUG2

#define OAK_DEBUG2 (   logger,
  ... 
)    OAK_LOG2(logger, oak::Level::Debug, __VA_ARGS__)

Definition at line 36 of file oak.hpp.

◆ OAK_ERROR

#define OAK_ERROR (   ...)    OAK_LOG(oak::Level::Error, __VA_ARGS__)

Definition at line 33 of file oak.hpp.

◆ OAK_ERROR2

#define OAK_ERROR2 (   logger,
  ... 
)    OAK_LOG2(logger, oak::Level::Error, __VA_ARGS__)

Definition at line 39 of file oak.hpp.

◆ OAK_INFO

#define OAK_INFO (   ...)    OAK_LOG(oak::Level::Info, __VA_ARGS__)

Definition at line 31 of file oak.hpp.

◆ OAK_INFO2

#define OAK_INFO2 (   logger,
  ... 
)    OAK_LOG2(logger, oak::Level::Info, __VA_ARGS__)

Definition at line 37 of file oak.hpp.

◆ OAK_LOG

#define OAK_LOG (   level,
  ... 
)    oak::log2(level, __FILE__, __LINE__, __VA_ARGS__)

Definition at line 29 of file oak.hpp.

◆ OAK_LOG2

#define OAK_LOG2 (   logger,
  level,
  ... 
)    logger->log2(level, __FILE__, __LINE__, __VA_ARGS__)

Definition at line 35 of file oak.hpp.

◆ OAK_WARN

#define OAK_WARN (   ...)    OAK_LOG(oak::Level::Warn, __VA_ARGS__)

Definition at line 32 of file oak.hpp.

◆ OAK_WARN2

#define OAK_WARN2 (   logger,
  ... 
)    OAK_LOG2(logger, oak::Level::Warn, __VA_ARGS__)

Definition at line 38 of file oak.hpp.