mirror of
https://github.com/gabime/spdlog.git
synced 2025-01-24 06:32:06 +08:00
Added mulitsink example
This commit is contained in:
parent
f4771be70e
commit
3c40c5ca5d
@ -14,6 +14,7 @@ void basic_example();
|
||||
void rotating_example();
|
||||
void daily_example();
|
||||
void async_example();
|
||||
void multi_sink_example();
|
||||
void user_defined_example();
|
||||
void err_handler_example();
|
||||
void syslog_example();
|
||||
@ -35,6 +36,9 @@ int main(int, char *[])
|
||||
// async logging using a backing thread pool
|
||||
async_example();
|
||||
|
||||
// a logger can have multiple targets with different formats
|
||||
multi_sink_example();
|
||||
|
||||
// user defined types logging by implementing operator<<
|
||||
user_defined_example();
|
||||
|
||||
@ -63,7 +67,7 @@ void stdout_example()
|
||||
console->info("Welcome to spdlog!");
|
||||
console->error("Some error message with arg: {}", 1);
|
||||
|
||||
auto err_logger = spdlog::stderr_color_mt("error_logger");
|
||||
auto err_logger = spdlog::stderr_color_mt("stderr");
|
||||
err_logger->error("Some error message");
|
||||
|
||||
// Formatting examples
|
||||
@ -82,7 +86,7 @@ void stdout_example()
|
||||
console->debug("This message should be displayed..");
|
||||
|
||||
// Customize msg format for all loggers
|
||||
spdlog::set_pattern("[%H:%M:%S %z] [%^---%L---%$] [thread %t] %v");
|
||||
spdlog::set_pattern("[%H:%M:%S %z] [%n] [%^---%L---%$] [thread %t] %v");
|
||||
console->info("This an info message with custom format");
|
||||
|
||||
// Compile time log levels
|
||||
@ -127,6 +131,23 @@ void async_example()
|
||||
}
|
||||
}
|
||||
|
||||
// create logger with 2 targets with different log levels and formats
|
||||
|
||||
void multi_sink_example()
|
||||
{
|
||||
|
||||
auto console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt >();
|
||||
console_sink->set_level(spdlog::level::warn);
|
||||
console_sink->set_pattern("[multi_sink_example] [%^%l%$] %v");
|
||||
|
||||
auto file_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt >("logs/multisink.txt", true);
|
||||
file_sink->set_level(spdlog::level::info);
|
||||
|
||||
spdlog::logger logger("multi_sink", {console_sink, file_sink});
|
||||
logger.warn("this should appear in both console and file");
|
||||
logger.info("this message should not appear in the console, only in the file");
|
||||
|
||||
}
|
||||
// user defined types logging by implementing operator<<
|
||||
#include "spdlog/fmt/ostr.h" // must be included
|
||||
struct my_type
|
||||
|
Loading…
Reference in New Issue
Block a user