|
|
- #pragma once
-
- #include "logging_api.h"
-
- #include "fmt/format.h"
- #include "fmt/ostream.h"
-
- namespace vlc
- {
- namespace logging
- {
- #ifndef VLC_CUSTOM_DEFAULT_LOGGING_TAG
- static const char* default_logging_tag = "visionlabs";
- #endif
-
- struct Tag
- {
- const char* name = default_logging_tag;
-
- Tag() = default;
-
- explicit Tag(const char* tagname) : name(tagname)
- {
-
- }
- };
-
- void write(Severity severity, const std::string& message, const char* tag = default_logging_tag);
-
- inline void error(const std::string& message, const char* tag = default_logging_tag)
- {
- #if VLC_LOGGING_MIN_LEVEL <= 3
- write(Severity::Error, message, tag);
- #endif
- }
-
- inline void warning(const std::string& message, const char* tag = default_logging_tag)
- {
- #if VLC_LOGGING_MIN_LEVEL <= 2
- write(Severity::Warning, message, tag);
- #endif
- }
-
- inline void info(const std::string& message, const char* tag = default_logging_tag)
- {
- #if VLC_LOGGING_MIN_LEVEL <= 1
- write(Severity::Information, message, tag);
- #endif
- }
-
- inline void debug(const std::string& message, const char* tag = default_logging_tag)
- {
- #if VLC_LOGGING_MIN_LEVEL <= 0
- write(Severity::Debug, message, tag);
- #endif
- }
-
- template<typename... Args> void error(const char* format, Args... args)
- {
- auto message = fmt::format(format, std::forward<Args>(args)...);
- error(message);
- }
-
- template<typename... Args> void warning(const char* format, Args... args)
- {
- auto message = fmt::format(format, std::forward<Args>(args)...);
- warning(message);
- }
-
- template<typename... Args> void info(const char* format, Args... args)
- {
- auto message = fmt::format(format, std::forward<Args>(args)...);
- info(message);
- }
-
- template<typename... Args> void debug(const char* format, Args... args)
- {
- auto message = fmt::format(format, std::forward<Args>(args)...);
- debug(message);
- }
-
- template<typename... Args> void error(Tag&& tag, const char* format, Args... args)
- {
- auto message = fmt::format(format, std::forward<Args>(args)...);
- error(message, tag.name);
- }
-
- template<typename... Args> void warning(Tag&& tag, const char* format, Args... args)
- {
- auto message = fmt::format(format, std::forward<Args>(args)...);
- warning(message, tag.name);
- }
-
- template<typename... Args> void info(Tag&& tag, const char* format, Args... args)
- {
- auto message = fmt::format(format, std::forward<Args>(args)...);
- info(message, tag.name);
- }
-
- template<typename... Args> void debug(Tag&& tag, const char* format, Args... args)
- {
- auto message = fmt::format(format, std::forward<Args>(args)...);
- debug(message, tag.name);
- }
-
- template<typename... Args> void error(const char* tag, const char* format, Args... args)
- {
- error(Tag(tag), format, std::forward<Args>(args)...);
- }
-
- template<typename... Args> void warning(const char* tag, const char* format, Args... args)
- {
- warning(Tag(tag), format, std::forward<Args>(args)...);
- }
-
- template<typename... Args> void info(const char* tag, const char* format, Args... args)
- {
- info(Tag(tag), format, std::forward<Args>(args)...);
- }
-
- template<typename... Args> void debug(const char* tag, const char* format, Args... args)
- {
- debug(Tag(tag), format, std::forward<Args>(args)...);
- }
- }
- }
|