12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // SPDX-License-Identifier: GPL-3.0-or-later
- // SPDX-FileCopyrightText: 2019-2023 Ivan Baidakou
- #include "test-utils.h"
- #include "utils/log.h"
- namespace st = syncspirit::test;
- namespace bfs = boost::filesystem;
- using namespace syncspirit;
- using L = spdlog::level::level_enum;
- bool overwrite = false;
- TEST_CASE("default logger", "[log]") {
- config::log_configs_t cfg{{"default", L::trace, {"stdout"}}};
- REQUIRE(utils::init_loggers(cfg, overwrite));
- auto l = utils::get_logger("default");
- CHECK(l);
- CHECK(l->level() == L::trace);
- }
- TEST_CASE("hierarchy", "[log]") {
- config::log_configs_t cfg{{"default", L::trace, {"stdout"}}, {"a", L::info, {}}, {"a.b.c", L::warn, {}}};
- REQUIRE(utils::init_loggers(cfg, overwrite));
- SECTION("custom") {
- auto l = utils::get_logger("a");
- REQUIRE(l);
- CHECK(l->level() == L::info);
- }
- SECTION("submatch") {
- auto l = utils::get_logger("a.b");
- REQUIRE(l);
- CHECK(l->level() == L::info);
- }
- SECTION("full match") {
- auto l = utils::get_logger("a.b.c");
- REQUIRE(l);
- CHECK(l->level() == L::warn);
- }
- SECTION("mismatch") {
- auto l = utils::get_logger("xxx");
- REQUIRE(l);
- CHECK(l->level() == L::trace);
- }
- }
- TEST_CASE("file sink", "[log]") {
- auto dir = bfs::path{bfs::unique_path()};
- auto path_guard = st::path_guard_t{dir};
- bfs::create_directory(dir);
- auto file_path = fmt::format("{}/log.txt", dir.string());
- auto sink_config = fmt::format("file:{}", file_path);
- config::log_configs_t cfg{{"default", L::trace, {sink_config}}};
- REQUIRE(utils::init_loggers(cfg, overwrite));
- auto l = utils::get_logger("default");
- l->info("lorem ipsum dolor");
- l->flush();
- spdlog::drop_all(); // to cleanup on win32
- auto data = st::read_file(bfs::path(file_path));
- CHECK(!data.empty());
- CHECK(data.find("lorem ipsum dolor") != std::string::npos);
- }
|