feat: added ServiceLogger for service logging
This commit is contained in:
parent
2d05897f84
commit
8e725b96c3
53
program/SVET/.vscode/settings.json
vendored
53
program/SVET/.vscode/settings.json
vendored
@ -1,5 +1,56 @@
|
|||||||
{
|
{
|
||||||
"files.associations": {
|
"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"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -86,3 +86,7 @@ void Logger::Error(char *data, char *initiator)
|
|||||||
{
|
{
|
||||||
sendMessage(getMessage(MessageType::ERROR, data, initiator).c_str(), RED);
|
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 <string>
|
||||||
#include "SerialColor.h"
|
#include "SerialColor.h"
|
||||||
#include "MessageType.h"
|
#include "MessageType.h"
|
||||||
|
#include "ServiceLogger.h"
|
||||||
|
#include <memory>
|
||||||
/*
|
/*
|
||||||
* Definition of Logger instance.
|
* Definition of Logger instance.
|
||||||
* Writed on 14.06.2024 21:11
|
* Writed on 14.06.2024 21:11
|
||||||
@ -49,4 +51,6 @@ public:
|
|||||||
/// @param data Message. Example: "Error occured"
|
/// @param data Message. Example: "Error occured"
|
||||||
/// @param initiator Name of initiator. Example: "main.cpp"
|
/// @param initiator Name of initiator. Example: "main.cpp"
|
||||||
void Error(char *data, char *initiator = nullptr);
|
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
|
// Setup logger
|
||||||
auto loggerOptions = &Builder->BuildLoggerOptions;
|
auto loggerOptions = &Builder->BuildLoggerOptions;
|
||||||
this->SLogger = std::make_unique<Logger>(loggerOptions->BaudRate,
|
this->MLogger = std::make_unique<Logger>(loggerOptions->BaudRate,
|
||||||
loggerOptions->CoreLoggerLevel,
|
loggerOptions->CoreLoggerLevel,
|
||||||
loggerOptions->UserLoggerLevel,
|
loggerOptions->UserLoggerLevel,
|
||||||
loggerOptions->UseColor);
|
loggerOptions->UseColor);
|
||||||
|
@ -15,7 +15,7 @@ class SVET
|
|||||||
SVETBuilder *Builder;
|
SVETBuilder *Builder;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
std::unique_ptr<Logger> SLogger;
|
std::unique_ptr<Logger> MLogger;
|
||||||
/// @brief Method that must be included to setup() on main.cpp
|
/// @brief Method that must be included to setup() on main.cpp
|
||||||
/// @return true if SVET was started
|
/// @return true if SVET was started
|
||||||
bool Start();
|
bool Start();
|
||||||
|
@ -1,22 +1,24 @@
|
|||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include "SVET.h"
|
#include "SVET.h"
|
||||||
|
#include "Logger/ServiceLogger.h"
|
||||||
|
|
||||||
std::unique_ptr<SVET> svet;
|
std::unique_ptr<SVET> svet;
|
||||||
Logger *logger;
|
std::unique_ptr<ServiceLogger> logger;
|
||||||
|
int counter = 0;
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
auto builder = SVETBuilder::Setup()->SetLogger(LoggerOptions());
|
auto builder = SVETBuilder::Setup()->SetLogger(LoggerOptions());
|
||||||
svet = std::make_unique<SVET>(SVET(builder));
|
svet = std::make_unique<SVET>(SVET(builder));
|
||||||
svet->Start();
|
svet->Start();
|
||||||
logger = svet->SLogger.get();
|
logger = svet->MLogger->GetServiceLogger("main.cpp");
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
{
|
{
|
||||||
delay(1000);
|
delay(500);
|
||||||
logger->Info("Hello INFO", "main.cpp");
|
auto strCounter = std::to_string(counter).c_str();
|
||||||
logger->Warn("Hello WARN", "main.cpp");
|
logger->Info((char*)strCounter);
|
||||||
logger->Error("Hello ERROR", "main.cpp");
|
counter++;
|
||||||
svet->Loop();
|
svet->Loop();
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user