feat: added ServiceLogger for service logging
This commit is contained in:
parent
2d05897f84
commit
8e725b96c3
program/SVET
.vscode
lib/SVET
src
53
program/SVET/.vscode/settings.json
vendored
53
program/SVET/.vscode/settings.json
vendored
@ -1,5 +1,56 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"string": "cpp"
|
||||
"string": "cpp",
|
||||
"array": "cpp",
|
||||
"string_view": "cpp",
|
||||
"ranges": "cpp",
|
||||
"atomic": "cpp",
|
||||
"bit": "cpp",
|
||||
"*.tcc": "cpp",
|
||||
"cctype": "cpp",
|
||||
"chrono": "cpp",
|
||||
"clocale": "cpp",
|
||||
"cmath": "cpp",
|
||||
"compare": "cpp",
|
||||
"concepts": "cpp",
|
||||
"cstdarg": "cpp",
|
||||
"cstddef": "cpp",
|
||||
"cstdint": "cpp",
|
||||
"cstdio": "cpp",
|
||||
"cstdlib": "cpp",
|
||||
"cstring": "cpp",
|
||||
"ctime": "cpp",
|
||||
"cwchar": "cpp",
|
||||
"cwctype": "cpp",
|
||||
"deque": "cpp",
|
||||
"list": "cpp",
|
||||
"map": "cpp",
|
||||
"set": "cpp",
|
||||
"unordered_map": "cpp",
|
||||
"vector": "cpp",
|
||||
"exception": "cpp",
|
||||
"algorithm": "cpp",
|
||||
"functional": "cpp",
|
||||
"iterator": "cpp",
|
||||
"memory": "cpp",
|
||||
"memory_resource": "cpp",
|
||||
"numeric": "cpp",
|
||||
"optional": "cpp",
|
||||
"random": "cpp",
|
||||
"ratio": "cpp",
|
||||
"system_error": "cpp",
|
||||
"tuple": "cpp",
|
||||
"type_traits": "cpp",
|
||||
"utility": "cpp",
|
||||
"initializer_list": "cpp",
|
||||
"iosfwd": "cpp",
|
||||
"limits": "cpp",
|
||||
"new": "cpp",
|
||||
"ostream": "cpp",
|
||||
"stdexcept": "cpp",
|
||||
"streambuf": "cpp",
|
||||
"cinttypes": "cpp",
|
||||
"typeinfo": "cpp",
|
||||
"variant": "cpp"
|
||||
}
|
||||
}
|
@ -85,4 +85,8 @@ void Logger::Warn(char *data, char *initiator)
|
||||
void Logger::Error(char *data, char *initiator)
|
||||
{
|
||||
sendMessage(getMessage(MessageType::ERROR, data, initiator).c_str(), RED);
|
||||
}
|
||||
|
||||
std::unique_ptr<ServiceLogger> Logger::GetServiceLogger(char *initiator){
|
||||
return std::make_unique<ServiceLogger>(ServiceLogger(this, initiator));
|
||||
}
|
@ -3,6 +3,8 @@
|
||||
#include <string>
|
||||
#include "SerialColor.h"
|
||||
#include "MessageType.h"
|
||||
#include "ServiceLogger.h"
|
||||
#include <memory>
|
||||
/*
|
||||
* Definition of Logger instance.
|
||||
* Writed on 14.06.2024 21:11
|
||||
@ -49,4 +51,6 @@ public:
|
||||
/// @param data Message. Example: "Error occured"
|
||||
/// @param initiator Name of initiator. Example: "main.cpp"
|
||||
void Error(char *data, char *initiator = nullptr);
|
||||
|
||||
std::unique_ptr<ServiceLogger> GetServiceLogger(char *initiator);
|
||||
};
|
28
program/SVET/lib/SVET/Logger/ServiceLogger.cpp
Normal file
28
program/SVET/lib/SVET/Logger/ServiceLogger.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
#include "ServiceLogger.h"
|
||||
#include "Logger.h"
|
||||
/*
|
||||
* Implementation of Service Logger instance. Docs on Logger.h
|
||||
* Writed on 14.06.2024 21:11
|
||||
* By Lisoveliy
|
||||
*/
|
||||
|
||||
ServiceLogger::ServiceLogger(Logger *logger, char *initiator)
|
||||
{
|
||||
this->initiator = initiator;
|
||||
this->mLogger = logger;
|
||||
}
|
||||
|
||||
void ServiceLogger::Info(char *data)
|
||||
{
|
||||
this->mLogger->Info(data, initiator);
|
||||
}
|
||||
|
||||
void ServiceLogger::Warn(char *data)
|
||||
{
|
||||
this->mLogger->Warn(data, initiator);
|
||||
}
|
||||
|
||||
void ServiceLogger::Error(char *data)
|
||||
{
|
||||
this->mLogger->Error(data, initiator);
|
||||
}
|
32
program/SVET/lib/SVET/Logger/ServiceLogger.h
Normal file
32
program/SVET/lib/SVET/Logger/ServiceLogger.h
Normal file
@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
class Logger;
|
||||
|
||||
/*
|
||||
* Definition of ServiceLogger instance.
|
||||
* Writed on 17.10.2024 16:41
|
||||
* By Lisoveliy
|
||||
*/
|
||||
|
||||
class ServiceLogger
|
||||
{
|
||||
char *initiator;
|
||||
Logger *mLogger;
|
||||
|
||||
public:
|
||||
/// @brief Create ServiceLogger instance
|
||||
/// @param initiator name of service
|
||||
ServiceLogger(Logger *logger, char *initiator = nullptr);
|
||||
/// @brief Log information
|
||||
/// @param data Message. Example: "Hello world!"
|
||||
void Info(char *data);
|
||||
|
||||
/// @brief Log Warning
|
||||
/// @param data Message. Example: "Some happened"
|
||||
void Warn(char *data);
|
||||
|
||||
/// @brief Log Error
|
||||
/// @param data Message. Example: "Error occured"
|
||||
void Error(char *data);
|
||||
};
|
@ -14,7 +14,7 @@ bool SVET::Start()
|
||||
{
|
||||
// Setup logger
|
||||
auto loggerOptions = &Builder->BuildLoggerOptions;
|
||||
this->SLogger = std::make_unique<Logger>(loggerOptions->BaudRate,
|
||||
this->MLogger = std::make_unique<Logger>(loggerOptions->BaudRate,
|
||||
loggerOptions->CoreLoggerLevel,
|
||||
loggerOptions->UserLoggerLevel,
|
||||
loggerOptions->UseColor);
|
||||
|
@ -15,7 +15,7 @@ class SVET
|
||||
SVETBuilder *Builder;
|
||||
|
||||
public:
|
||||
std::unique_ptr<Logger> SLogger;
|
||||
std::unique_ptr<Logger> MLogger;
|
||||
/// @brief Method that must be included to setup() on main.cpp
|
||||
/// @return true if SVET was started
|
||||
bool Start();
|
||||
|
@ -1,22 +1,24 @@
|
||||
#include <Arduino.h>
|
||||
#include <memory>
|
||||
#include "SVET.h"
|
||||
#include "Logger/ServiceLogger.h"
|
||||
|
||||
std::unique_ptr<SVET> svet;
|
||||
Logger *logger;
|
||||
std::unique_ptr<ServiceLogger> logger;
|
||||
int counter = 0;
|
||||
void setup()
|
||||
{
|
||||
auto builder = SVETBuilder::Setup()->SetLogger(LoggerOptions());
|
||||
svet = std::make_unique<SVET>(SVET(builder));
|
||||
svet->Start();
|
||||
logger = svet->SLogger.get();
|
||||
logger = svet->MLogger->GetServiceLogger("main.cpp");
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
delay(1000);
|
||||
logger->Info("Hello INFO", "main.cpp");
|
||||
logger->Warn("Hello WARN", "main.cpp");
|
||||
logger->Error("Hello ERROR", "main.cpp");
|
||||
delay(500);
|
||||
auto strCounter = std::to_string(counter).c_str();
|
||||
logger->Info((char*)strCounter);
|
||||
counter++;
|
||||
svet->Loop();
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user