Skip to content
Snippets Groups Projects
Commit c4e20aba authored by kongr45gpen's avatar kongr45gpen
Browse files

Merge branch 'logging' into 'master'

Logging

This adds a Logging "library" to the ECSS Services repo. This library allows logging messages with different severities, and allows the user of the services to choose which severity they want displayed.

A comparison between [Google (glog)](https://github.com/google/glog), [spdlog](https://github.com/gabime/spdlog), [plog](https://github.com/SergiusTheBest/plog) and [Boost::Log](https://www.boost.org/doc/libs/1_63_0/libs/log/doc/html/index.html) was made, and we decided to go with a custom lite solution, also compatible with `etl::string`.

The following log levels are supported, but they are up for discussion:

|Level|Description|
|---|---|
| **trace** | Very detailed information, useful for tracking the individual steps of an operation.|
| **debug** | General debugging information.|
| **info** | Noteworthy or periodical events.|
| **notice** | Uncommon but expected events.|
| **warning** | Unexpected events that do not compromise the operability of a function.|
| **error** | Unexpected failure of an operation.|
| **emergency** | Unexpected failure that renders the entire system unusable.|
| **disabled** | Use this log level to disable logging entirely. No message should be logged as disabled.|

The library uses `#define`s that allow logging in this way:
```c++
LOG_ERROR << "Configuration not found";
LOG_INFO << "The camera took " << 15 << " pictures today";
LOG_DEBUG << "Ran function " << functionName << " with " << getId(functionName);
```

Closes #18.

It is lite enough to be used [on a microcontroller](https://gitlab.com/acubesat/obc/mockup-4/commit/4aaa55bb72030cee6cf4eca7b082297cf60edf37).

**See https://acubesat.gitlab.io/obc/ecss-services/docs/classLogger.html for more detailed documentation of the Logger functionality**.


The following images show a sample log output on x86 and on an MCU via UART:  
![Log output on x86](/uploads/2ed78e90bfbab8125879fe96346aa9c9/Image_Pasted_at_2019-8-8_14-04.png)![Log output on MCU](/uploads/c8505fc7f282ed520f36d5f4f2beabc7/Image_Pasted_at_2019-8-9_00-45.png)

See merge request acubesat/obc/ecss-services!44
parents 75507c52 e66cedf4
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment