Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Forairaaaaa/mooncake_log

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mooncake Log

只是 fmt 的简单封装

Basic logging

mclog::info("?? {} ..??? 0x{:02X}", 114514, 66);
// [2025-06-06 12.34.56.123] [info] ?? 114514 ..??? 0x42

mclog::info("{}", std::vector<int>{1, 23, 4, 5});
// [2025-06-06 12.34.56.123] [info] [1, 23, 4, 5]

mclog::warn("???");
// [2025-06-06 12.34.56.123] [warn] ???

mclog::warn("{}", "6");
// [2025-06-06 12.34.56.123] [warn] 6

mclog::error("???");
// [2025-06-06 12.34.56.123] [error] ???

mclog::error("{}", "6");
// [2025-06-06 12.34.56.123] [error] 6

Log level

mclog::debug("you can't see me now");
// > no shit

mclog::set_level(mclog::level_debug);
mclog::debug("dddddddddddddddeeeeeeeeeebuggggggggggggggggggiiiinnnnnnggg");
// [2025-06-06 12.34.56.123] [debug] dddddddddddddddeeeeeeeeeebuggggggggggggggggggiiiinnnnnnggg

Time format

mclog::set_time_format(mclog::time_format_none);
mclog::info("time format: none");
// [info] time format: none

mclog::set_time_format(mclog::time_format_time_only);
mclog::info("time format: time only");
// [12.34.56.123] [info] time format: time only

mclog::set_time_format(mclog::time_format_unix_seconds);
mclog::info("time format: unix seconds");
// [1749184496] [info] time format: unix seconds

mclog::set_time_format(mclog::time_format_unix_milliseconds);
mclog::info("time format: unix milliseconds");
// [1749184496123] [info] time format: unix milliseconds

mclog::set_time_format(mclog::time_format_full);
mclog::info("time format: full (default)");
// [2025-06-06 12.34.56.123] [info] time format: full (default)

Level format

mclog::set_level_format(mclog::level_format_none);
mclog::info("level format: none");
// [2025-06-06 12.34.56.123] [info] level format: none

mclog::set_level_format(mclog::level_format_uppercase);
mclog::info("level format: uppercase");
// [2025-06-06 12.34.56.123] [INFO] level format: uppercase

mclog::set_level_format(mclog::level_format_single_letter);
mclog::info("level format: single letter");
// [2025-06-06 12.34.56.123] [I] level format: single letter

mclog::set_level_format(mclog::level_format_lowercase);
mclog::info("level format: lowercase (default)");
// [2025-06-06 12.34.56.123] [info] level format: lowercase (default)

On log callback

mclog::on_log.connect([](mclog::LogLevel_t level, const std::string& msg) {
    fmt::println(">> level: {} msg: {}", static_cast<int>(level), msg);
});

mclog::info("?");
// [info] ?
// >> level: 0 msg: ?

mclog::warn("?");
// [warn] ?
// >> level: 1 msg: ?

mclog::error("?");
// [error] ?
// >> level: 2 msg: ?

mclog::debug("?");
// [debug] ?
// >> level: 3 msg: ?

mclog::on_log.clear();
mclog::info("clear on log callback");
// [2025-06-06 12.34.56.123] [info] clear on log callback

About

给单片机用的 logger

Resources

License

Stars

Watchers

Forks

Packages

No packages published