Ersa Wearable Platform
Embedded smartwatch firmware and application framework
Loading...
Searching...
No Matches
logging_service.h
Go to the documentation of this file.
1#pragma once
2
3#include <stdint.h>
4#include <stdarg.h>
5
6namespace ersa {
7namespace services {
8
10enum class LogLevel : uint8_t {
11 Trace = 0,
12 Debug,
13 Info,
14 Warn,
15 Error,
16 Fatal
17};
18
28public:
29 virtual ~LoggingService() = default;
30
36 virtual void log(LogLevel level, const char* tag, const char* format, ...) __attribute__((format(printf, 4, 5))) = 0;
38 virtual void logv(LogLevel level, const char* tag, const char* format, va_list args) = 0;
39
41 virtual void setLevel(LogLevel level) { minLevel_ = level; }
43 virtual LogLevel getLevel() const { return minLevel_; }
44
46 static LoggingService& instance();
49
50protected:
52};
53
54} // namespace services
55} // namespace ersa
56
57#define ERSA_LOG_TRACE(tag, fmt, ...) ersa::services::LoggingService::instance().log(ersa::services::LogLevel::Trace, tag, fmt, ##__VA_ARGS__)
58#define ERSA_LOG_DEBUG(tag, fmt, ...) ersa::services::LoggingService::instance().log(ersa::services::LogLevel::Debug, tag, fmt, ##__VA_ARGS__)
59#define ERSA_LOG_INFO(tag, fmt, ...) ersa::services::LoggingService::instance().log(ersa::services::LogLevel::Info, tag, fmt, ##__VA_ARGS__)
60#define ERSA_LOG_WARN(tag, fmt, ...) ersa::services::LoggingService::instance().log(ersa::services::LogLevel::Warn, tag, fmt, ##__VA_ARGS__)
61#define ERSA_LOG_ERROR(tag, fmt, ...) ersa::services::LoggingService::instance().log(ersa::services::LogLevel::Error, tag, fmt, ##__VA_ARGS__)
62#define ERSA_LOG_FATAL(tag, fmt, ...) ersa::services::LoggingService::instance().log(ersa::services::LogLevel::Fatal, tag, fmt, ##__VA_ARGS__)
Definition logging_service.h:27
virtual void virtual void logv(LogLevel level, const char *tag, const char *format, va_list args)=0
virtual ~LoggingService()=default
virtual void setLevel(LogLevel level)
Definition logging_service.h:41
virtual LogLevel getLevel() const
Return the current minimum severity.
Definition logging_service.h:43
LogLevel minLevel_
Definition logging_service.h:51
virtual void log(LogLevel level, const char *tag, const char *format,...) __attribute__((format(printf
static void setInstance(LoggingService *instance)
Definition logging_service.cpp:17
static LoggingService & instance()
Definition logging_service.cpp:13
LogLevel
Definition logging_service.h:10
Definition application.h:10
char tag[32]
Definition ota_service.cpp:43