libdoip  0.1.0
DoIP (Diagnostics over Internet Protocol) ISO 13400 C++17 Library
Logger.h File Reference
#include "AnsiColors.h"
#include <cstdlib>
#include <memory>
#include <mutex>
#include <spdlog/fmt/fmt.h>
#include <spdlog/fmt/ostr.h>
#include <spdlog/sinks/stdout_color_sinks.h>
#include <spdlog/spdlog.h>
#include <string>
#include <optional>
#include <sstream>
Include dependency graph for Logger.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fmt::streamed_t< T >
 
class  doip::Logger
 Centralized logger for the DoIP library. More...
 

Namespaces

 fmt
 
 doip
 

Macros

#define LOG_DOIP_TRACE(...)   doip::Logger::get()->trace(__VA_ARGS__)
 
#define LOG_DOIP_DEBUG(...)   doip::Logger::get()->debug(__VA_ARGS__)
 
#define LOG_DOIP_INFO(...)   doip::Logger::get()->info(__VA_ARGS__)
 
#define LOG_DOIP_WARN(...)   doip::Logger::get()->warn(__VA_ARGS__)
 
#define LOG_DOIP_ERROR(...)   doip::Logger::get()->error(__VA_ARGS__)
 
#define LOG_DOIP_CRITICAL(...)   doip::Logger::get()->critical(__VA_ARGS__)
 
#define LOG_UDP_TRACE(...)   doip::Logger::getUdp()->trace(__VA_ARGS__)
 
#define LOG_UDP_DEBUG(...)   doip::Logger::getUdp()->debug(__VA_ARGS__)
 
#define LOG_UDP_INFO(...)   doip::Logger::getUdp()->info(__VA_ARGS__)
 
#define LOG_UDP_WARN(...)   doip::Logger::getUdp()->warn(__VA_ARGS__)
 
#define LOG_UDP_ERROR(...)   doip::Logger::getUdp()->error(__VA_ARGS__)
 
#define LOG_UDP_CRITICAL(...)   doip::Logger::getUdp()->critical(__VA_ARGS__)
 
#define LOG_TCP_TRACE(...)   doip::Logger::getTcp()->trace(__VA_ARGS__)
 
#define LOG_TCP_DEBUG(...)   doip::Logger::getTcp()->debug(__VA_ARGS__)
 
#define LOG_TCP_INFO(...)   doip::Logger::getTcp()->info(__VA_ARGS__)
 
#define LOG_TCP_WARN(...)   doip::Logger::getTcp()->warn(__VA_ARGS__)
 
#define LOG_TCP_ERROR(...)   doip::Logger::getTcp()->error(__VA_ARGS__)
 
#define LOG_TCP_CRITICAL(...)   doip::Logger::getTcp()->critical(__VA_ARGS__)
 
#define LOG_DOIP_SUCCESS(...)    doip::Logger::get()->info(std::string(doip::ansi::bold_green) + fmt::format(__VA_ARGS__) + doip::ansi::reset)
 
#define LOG_DOIP_ERROR_COLORED(...)    doip::Logger::get()->error(std::string(doip::ansi::bold_red) + fmt::format(__VA_ARGS__) + doip::ansi::reset)
 
#define LOG_DOIP_PROTOCOL(...)    doip::Logger::get()->info(std::string(doip::ansi::bold_blue) + fmt::format(__VA_ARGS__) + doip::ansi::reset)
 
#define LOG_DOIP_CONNECTION(...)    doip::Logger::get()->info(std::string(doip::ansi::bold_magenta) + fmt::format(__VA_ARGS__) + doip::ansi::reset)
 
#define LOG_DOIP_HIGHLIGHT(...)    doip::Logger::get()->info(std::string(doip::ansi::bold_cyan) + fmt::format(__VA_ARGS__) + doip::ansi::reset)
 
#define LOG_DOIP_STREAM_INFO(obj, ...)   LOG_DOIP_INFO(fmt::format("{} " __VA_ARGS__, fmt::streamed(obj)))
 
#define LOG_DOIP_STREAM_DEBUG(obj, ...)   LOG_DOIP_DEBUG(fmt::format("{} " __VA_ARGS__, fmt::streamed(obj)))
 
#define LOG_DOIP_STREAM_WARN(obj, ...)   LOG_DOIP_WARN(fmt::format("{} " __VA_ARGS__, fmt::streamed(obj)))
 
#define LOG_DOIP_STREAM_ERROR(obj, ...)   LOG_DOIP_ERROR(fmt::format("{} " __VA_ARGS__, fmt::streamed(obj)))
 
#define LOG_DOIP_STREAM_SUCCESS(obj, ...)    doip::Logger::get()->info(std::string(doip::ansi::bold_green) + fmt::format("{} " __VA_ARGS__, fmt::streamed(obj)) + doip::ansi::reset)
 
#define LOG_DOIP_STREAM_PROTOCOL(obj, ...)    doip::Logger::get()->info(std::string(doip::ansi::bold_blue) + fmt::format("{} " __VA_ARGS__, fmt::streamed(obj)) + doip::ansi::reset)
 
#define LOG_DOIP_STREAM_CONNECTION(obj, ...)    doip::Logger::get()->info(std::string(doip::ansi::bold_magenta) + fmt::format("{} " __VA_ARGS__, fmt::streamed(obj)) + doip::ansi::reset)
 

Functions

template<typename T >
streamed_t< T > fmt::streamed (const T &v)
 
template<typename OStream , typename T >
OStream & fmt::operator<< (OStream &os, const streamed_t< T > &s)
 
template<typename OStream , typename T >
OStream & fmt::operator<< (OStream &os, const streamed_t< std::optional< T >> &s)
 

Variables

constexpr const char * doip::DEFAULT_PATTERN = "[%H:%M:%S.%e] [%n] [%^%l%$] %v"
 
constexpr const char * doip::SHORT_PATTERN = "[%n] [%^%l%$] %v"
 Pattern for short output without timestamp. More...
 

Macro Definition Documentation

◆ LOG_DOIP_CONNECTION

#define LOG_DOIP_CONNECTION (   ...)     doip::Logger::get()->info(std::string(doip::ansi::bold_magenta) + fmt::format(__VA_ARGS__) + doip::ansi::reset)

Definition at line 157 of file Logger.h.

◆ LOG_DOIP_CRITICAL

#define LOG_DOIP_CRITICAL (   ...)    doip::Logger::get()->critical(__VA_ARGS__)

Definition at line 129 of file Logger.h.

◆ LOG_DOIP_DEBUG

#define LOG_DOIP_DEBUG (   ...)    doip::Logger::get()->debug(__VA_ARGS__)

Definition at line 125 of file Logger.h.

◆ LOG_DOIP_ERROR

#define LOG_DOIP_ERROR (   ...)    doip::Logger::get()->error(__VA_ARGS__)

Definition at line 128 of file Logger.h.

◆ LOG_DOIP_ERROR_COLORED

#define LOG_DOIP_ERROR_COLORED (   ...)     doip::Logger::get()->error(std::string(doip::ansi::bold_red) + fmt::format(__VA_ARGS__) + doip::ansi::reset)

Definition at line 151 of file Logger.h.

◆ LOG_DOIP_HIGHLIGHT

#define LOG_DOIP_HIGHLIGHT (   ...)     doip::Logger::get()->info(std::string(doip::ansi::bold_cyan) + fmt::format(__VA_ARGS__) + doip::ansi::reset)

Definition at line 160 of file Logger.h.

◆ LOG_DOIP_INFO

#define LOG_DOIP_INFO (   ...)    doip::Logger::get()->info(__VA_ARGS__)

Definition at line 126 of file Logger.h.

◆ LOG_DOIP_PROTOCOL

#define LOG_DOIP_PROTOCOL (   ...)     doip::Logger::get()->info(std::string(doip::ansi::bold_blue) + fmt::format(__VA_ARGS__) + doip::ansi::reset)

Definition at line 154 of file Logger.h.

◆ LOG_DOIP_STREAM_CONNECTION

#define LOG_DOIP_STREAM_CONNECTION (   obj,
  ... 
)     doip::Logger::get()->info(std::string(doip::ansi::bold_magenta) + fmt::format("{} " __VA_ARGS__, fmt::streamed(obj)) + doip::ansi::reset)

Definition at line 177 of file Logger.h.

◆ LOG_DOIP_STREAM_DEBUG

#define LOG_DOIP_STREAM_DEBUG (   obj,
  ... 
)    LOG_DOIP_DEBUG(fmt::format("{} " __VA_ARGS__, fmt::streamed(obj)))

Definition at line 166 of file Logger.h.

◆ LOG_DOIP_STREAM_ERROR

#define LOG_DOIP_STREAM_ERROR (   obj,
  ... 
)    LOG_DOIP_ERROR(fmt::format("{} " __VA_ARGS__, fmt::streamed(obj)))

Definition at line 168 of file Logger.h.

◆ LOG_DOIP_STREAM_INFO

#define LOG_DOIP_STREAM_INFO (   obj,
  ... 
)    LOG_DOIP_INFO(fmt::format("{} " __VA_ARGS__, fmt::streamed(obj)))

Definition at line 165 of file Logger.h.

◆ LOG_DOIP_STREAM_PROTOCOL

#define LOG_DOIP_STREAM_PROTOCOL (   obj,
  ... 
)     doip::Logger::get()->info(std::string(doip::ansi::bold_blue) + fmt::format("{} " __VA_ARGS__, fmt::streamed(obj)) + doip::ansi::reset)

Definition at line 174 of file Logger.h.

◆ LOG_DOIP_STREAM_SUCCESS

#define LOG_DOIP_STREAM_SUCCESS (   obj,
  ... 
)     doip::Logger::get()->info(std::string(doip::ansi::bold_green) + fmt::format("{} " __VA_ARGS__, fmt::streamed(obj)) + doip::ansi::reset)

Definition at line 171 of file Logger.h.

◆ LOG_DOIP_STREAM_WARN

#define LOG_DOIP_STREAM_WARN (   obj,
  ... 
)    LOG_DOIP_WARN(fmt::format("{} " __VA_ARGS__, fmt::streamed(obj)))

Definition at line 167 of file Logger.h.

◆ LOG_DOIP_SUCCESS

#define LOG_DOIP_SUCCESS (   ...)     doip::Logger::get()->info(std::string(doip::ansi::bold_green) + fmt::format(__VA_ARGS__) + doip::ansi::reset)

Definition at line 148 of file Logger.h.

◆ LOG_DOIP_TRACE

#define LOG_DOIP_TRACE (   ...)    doip::Logger::get()->trace(__VA_ARGS__)

Definition at line 124 of file Logger.h.

◆ LOG_DOIP_WARN

#define LOG_DOIP_WARN (   ...)    doip::Logger::get()->warn(__VA_ARGS__)

Definition at line 127 of file Logger.h.

◆ LOG_TCP_CRITICAL

#define LOG_TCP_CRITICAL (   ...)    doip::Logger::getTcp()->critical(__VA_ARGS__)

Definition at line 145 of file Logger.h.

◆ LOG_TCP_DEBUG

#define LOG_TCP_DEBUG (   ...)    doip::Logger::getTcp()->debug(__VA_ARGS__)

Definition at line 141 of file Logger.h.

◆ LOG_TCP_ERROR

#define LOG_TCP_ERROR (   ...)    doip::Logger::getTcp()->error(__VA_ARGS__)

Definition at line 144 of file Logger.h.

◆ LOG_TCP_INFO

#define LOG_TCP_INFO (   ...)    doip::Logger::getTcp()->info(__VA_ARGS__)

Definition at line 142 of file Logger.h.

◆ LOG_TCP_TRACE

#define LOG_TCP_TRACE (   ...)    doip::Logger::getTcp()->trace(__VA_ARGS__)

Definition at line 140 of file Logger.h.

◆ LOG_TCP_WARN

#define LOG_TCP_WARN (   ...)    doip::Logger::getTcp()->warn(__VA_ARGS__)

Definition at line 143 of file Logger.h.

◆ LOG_UDP_CRITICAL

#define LOG_UDP_CRITICAL (   ...)    doip::Logger::getUdp()->critical(__VA_ARGS__)

Definition at line 137 of file Logger.h.

◆ LOG_UDP_DEBUG

#define LOG_UDP_DEBUG (   ...)    doip::Logger::getUdp()->debug(__VA_ARGS__)

Definition at line 133 of file Logger.h.

◆ LOG_UDP_ERROR

#define LOG_UDP_ERROR (   ...)    doip::Logger::getUdp()->error(__VA_ARGS__)

Definition at line 136 of file Logger.h.

◆ LOG_UDP_INFO

#define LOG_UDP_INFO (   ...)    doip::Logger::getUdp()->info(__VA_ARGS__)

Definition at line 134 of file Logger.h.

◆ LOG_UDP_TRACE

#define LOG_UDP_TRACE (   ...)    doip::Logger::getUdp()->trace(__VA_ARGS__)

Definition at line 132 of file Logger.h.

◆ LOG_UDP_WARN

#define LOG_UDP_WARN (   ...)    doip::Logger::getUdp()->warn(__VA_ARGS__)

Definition at line 135 of file Logger.h.