mirror of
https://github.com/gabime/spdlog.git
synced 2025-02-03 11:09:15 +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 rotating_example();
|
||||||
void daily_example();
|
void daily_example();
|
||||||
void async_example();
|
void async_example();
|
||||||
|
void multi_sink_example();
|
||||||
void user_defined_example();
|
void user_defined_example();
|
||||||
void err_handler_example();
|
void err_handler_example();
|
||||||
void syslog_example();
|
void syslog_example();
|
||||||
@ -35,6 +36,9 @@ int main(int, char *[])
|
|||||||
// async logging using a backing thread pool
|
// async logging using a backing thread pool
|
||||||
async_example();
|
async_example();
|
||||||
|
|
||||||
|
// a logger can have multiple targets with different formats
|
||||||
|
multi_sink_example();
|
||||||
|
|
||||||
// user defined types logging by implementing operator<<
|
// user defined types logging by implementing operator<<
|
||||||
user_defined_example();
|
user_defined_example();
|
||||||
|
|
||||||
@ -63,7 +67,7 @@ void stdout_example()
|
|||||||
console->info("Welcome to spdlog!");
|
console->info("Welcome to spdlog!");
|
||||||
console->error("Some error message with arg: {}", 1);
|
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");
|
err_logger->error("Some error message");
|
||||||
|
|
||||||
// Formatting examples
|
// Formatting examples
|
||||||
@ -82,7 +86,7 @@ void stdout_example()
|
|||||||
console->debug("This message should be displayed..");
|
console->debug("This message should be displayed..");
|
||||||
|
|
||||||
// Customize msg format for all loggers
|
// 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");
|
console->info("This an info message with custom format");
|
||||||
|
|
||||||
// Compile time log levels
|
// 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<<
|
// user defined types logging by implementing operator<<
|
||||||
#include "spdlog/fmt/ostr.h" // must be included
|
#include "spdlog/fmt/ostr.h" // must be included
|
||||||
struct my_type
|
struct my_type
|
||||||
|
Loading…
Reference in New Issue
Block a user