Spdlog печатает для отладки и приемника информации [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Spdlog печатает для отладки и приемника информации [закрыто]

Сообщение Anonymous »

У меня есть следующая функция, которая вызывается в начале main() для настройки ведения журнала spdlog:

Код: Выделить всё

void setup_logging() {
auto info_sink = std::make_shared();
info_sink->set_level(spdlog::level::info);
info_sink->set_pattern("[%H:%M:%S][INFO] %v");

auto debug_sink = std::make_shared();
debug_sink->set_level(spdlog::level::debug);
debug_sink->set_pattern("[%H:%M:%S][DEBUG][%g:%#] %v");

auto error_sink = std::make_shared();
error_sink->set_level(spdlog::level::err);
error_sink->set_pattern("[%H:%M:%S][ERROR] %v");

auto file_sink = std::make_shared("logs/log.txt", 0, 0);
file_sink->set_level(spdlog::level::trace);
file_sink->set_pattern("[%Y-%m-%d %H:%M:%S][%l] %v");

std::vector sinks{ info_sink, debug_sink, error_sink, file_sink };
auto logger = std::make_shared("multi_sink_logger", sinks.begin(), sinks.end());
logger->set_level(spdlog::level::trace);
spdlog::set_default_logger(logger);
spdlog::flush_on(spdlog::level::trace);
}
когда я вызываю SPDLOG_DEBUG, он работает правильно (я использую макрос, потому что только он дает мне информацию об исходном файле), однако, когда я использую spdlog::info, он печатает как DEBUG, так и INFO:

Код: Выделить всё

raid::setup_logging();
spdlog::info("entered main()");
[...]
SPDLOG_DEBUG("Initialized window");

Код: Выделить всё

[20:37:04][INFO] entered main()
[20:37:04][DEBUG][:] entered main()
[20:37:04][INFO] Loading settings from /home/.../settings.toml
[20:37:04][DEBUG][:] Loading settings from /home/.../settings.toml
[20:37:04][INFO] Startup
[20:37:04][DEBUG][:] Startup
[20:37:04][INFO] Initialized application
[20:37:04][DEBUG][:] Initialized application
[20:37:04][DEBUG][main.cpp:242] Initialized window
[20:37:04][DEBUG][main.cpp:243] Parsing arguments
Как избежать того, чтобы spdlog::info также печатал строки отладки?


Подробнее здесь: https://stackoverflow.com/questions/797 ... -info-sink
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»