From 1dbefd98c114329a0a7273e2ca2043f72246a4ca Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Wed, 7 Aug 2024 20:15:48 +0200 Subject: [PATCH] feat(logger): allow construction without explicit terminal / ostream --- include/dwarfs/logger.h | 2 ++ src/dwarfs/logger.cpp | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/dwarfs/logger.h b/include/dwarfs/logger.h index 686f2096..2970736d 100644 --- a/include/dwarfs/logger.h +++ b/include/dwarfs/logger.h @@ -101,6 +101,8 @@ struct logger_options { class stream_logger : public logger { public: + explicit stream_logger(logger_options const& options = {}); + explicit stream_logger(std::ostream& os, logger_options const& options = {}); stream_logger(std::shared_ptr term, std::ostream& os, logger_options const& options = {}); diff --git a/src/dwarfs/logger.cpp b/src/dwarfs/logger.cpp index 714bb739..2e513252 100644 --- a/src/dwarfs/logger.cpp +++ b/src/dwarfs/logger.cpp @@ -42,7 +42,7 @@ #include #include -#include +#include #include namespace dwarfs { @@ -105,6 +105,12 @@ std::string logger::all_level_names() { null_logger::null_logger() { set_policy(); } +stream_logger::stream_logger(logger_options const& options) + : stream_logger(std::cerr, options) {} + +stream_logger::stream_logger(std::ostream& os, logger_options const& options) + : stream_logger(std::make_shared(), os, options) {} + stream_logger::stream_logger(std::shared_ptr term, std::ostream& os, logger_options const& logopts) : os_(os)