Refactor logging code and update test cases

This commit is contained in:
mutouyun 2024-01-13 18:39:57 +08:00
parent 30e5af90b3
commit f3ecf7c61c
2 changed files with 23 additions and 13 deletions

View File

@ -105,21 +105,31 @@ inline auto &make_std_out() noexcept {
return std_out; return std_out;
} }
/**
* \brief Log information base class.
*/
class logger_base {
protected:
char const *func_;
level level_limit_;
logger_base(char const *func, level level_limit) noexcept
: func_ (func)
, level_limit_(level_limit) {}
};
/** /**
* \brief Log information grips. * \brief Log information grips.
*/ */
template <typename Outputer> template <typename Outputer>
class logger { class logger : public logger_base {
Outputer out_; Outputer out_;
char const *func_;
level level_limit_;
public: public:
template <typename O> template <typename O>
logger(char const *func, O &&out, level level_limit) noexcept logger(char const *func, O &&out, level level_limit) noexcept
: out_ (std::forward<O>(out)) : logger_base(func, level_limit)
, func_ (func) , out_ (std::forward<O>(out)) {}
, level_limit_(level_limit) {}
template <typename... A> template <typename... A>
logger const &operator()(log::level l, A &&...args) const noexcept { logger const &operator()(log::level l, A &&...args) const noexcept {

View File

@ -17,7 +17,7 @@ TEST(log, logger) {
} }
{ {
LIBIMP_LOG_(); LIBIMP_LOG_();
log.info(), "hello ", 3; log.info("hello ", 3);
} }
SUCCEED(); SUCCEED();
} }
@ -36,11 +36,11 @@ TEST(log, custom) {
LIBIMP_LOG_(ll); LIBIMP_LOG_(ll);
log.info ("hello"); log.info ("hello", " world");
log.error("failed:"); log.error("failed", ":");
log.info ("log-pt"); log.info ("log", '-', "pt");
log.error("whatever"); log.error("whatever");
EXPECT_EQ(ll_data.i, "hello log-pt "); EXPECT_EQ(ll_data.i, "hello world log-pt ");
EXPECT_EQ(ll_data.e, "failed: whatever "); EXPECT_EQ(ll_data.e, "failed: whatever ");
} }