LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
lf::base::LineFeedFormatter Class Referencefinal

A spdlog formatter which wraps another formatter and makes sure that if there are new lines (\n) in the log message, that the log message is still properly indented. More...

#include <lf/base/spdlog_utils.h>

Inheritance diagram for lf::base::LineFeedFormatter:

Public Member Functions

 LineFeedFormatter (std::unique_ptr< spdlog::formatter > wrapped_formatter)
 
 LineFeedFormatter (const LineFeedFormatter &)=delete
 
 LineFeedFormatter (LineFeedFormatter &&)=default
 
LineFeedFormatteroperator= (const LineFeedFormatter &)=delete
 
LineFeedFormatteroperator= (LineFeedFormatter &&)=default
 
 ~LineFeedFormatter () override=default
 
void format (const spdlog::details::log_msg &msg, spdlog::memory_buf_t &dest) override
 
std::unique_ptr< formatter > clone () const override
 

Private Attributes

std::unique_ptr< spdlog::formatter > wrapped_formatter_
 

Detailed Description

A spdlog formatter which wraps another formatter and makes sure that if there are new lines (\n) in the log message, that the log message is still properly indented.

Multiline log message with normal pattern formatter:

std::shared_ptr<spdlog::logger> logger =
spdlog::stdout_color_mt("logger_name");
logger->set_level(spdlog::level::trace);
SPDLOG_LOGGER_TRACE(logger, "hello\nworld");

Output:

[2020-10-08 20:45:54.021] [logger_name] [trace] [mesh_factory_tests.cc:77] hello
world

Multiline log message with LineFeedFormatter:

std::shared_ptr<spdlog::logger> logger =
spdlog::stdout_color_mt("logger_name");
logger->set_formatter(std::make_unique<lf::base::LineFeedFormatter>(
std::make_unique<spdlog::pattern_formatter>()));
logger->set_level(spdlog::level::trace);
SPDLOG_LOGGER_TRACE(logger, "hello\nworld");

Output:

[2020-10-08 20:47:15.781] [logger_name] [trace] [mesh_factory_tests.cc:81] hello
world

Definition at line 75 of file spdlog_utils.h.

Constructor & Destructor Documentation

◆ LineFeedFormatter() [1/3]

lf::base::LineFeedFormatter::LineFeedFormatter ( std::unique_ptr< spdlog::formatter > wrapped_formatter)
explicit

Definition at line 23 of file spdlog_utils.cc.

◆ LineFeedFormatter() [2/3]

lf::base::LineFeedFormatter::LineFeedFormatter ( const LineFeedFormatter & )
delete

◆ LineFeedFormatter() [3/3]

lf::base::LineFeedFormatter::LineFeedFormatter ( LineFeedFormatter && )
default

◆ ~LineFeedFormatter()

lf::base::LineFeedFormatter::~LineFeedFormatter ( )
overridedefault

Member Function Documentation

◆ clone()

std::unique_ptr< spdlog::formatter > lf::base::LineFeedFormatter::clone ( ) const
override

Definition at line 66 of file spdlog_utils.cc.

References wrapped_formatter_.

◆ format()

void lf::base::LineFeedFormatter::format ( const spdlog::details::log_msg & msg,
spdlog::memory_buf_t & dest )
override

Definition at line 27 of file spdlog_utils.cc.

References wrapped_formatter_.

◆ operator=() [1/2]

LineFeedFormatter & lf::base::LineFeedFormatter::operator= ( const LineFeedFormatter & )
delete

◆ operator=() [2/2]

LineFeedFormatter & lf::base::LineFeedFormatter::operator= ( LineFeedFormatter && )
default

Member Data Documentation

◆ wrapped_formatter_

std::unique_ptr<spdlog::formatter> lf::base::LineFeedFormatter::wrapped_formatter_
private

Definition at line 92 of file spdlog_utils.h.

Referenced by clone(), and format().


The documentation for this class was generated from the following files: