Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mathworks/adaptive-logging-utility

Logging and environment utilities for MATLAB coding
https://github.com/mathworks/adaptive-logging-utility

dtap log4j logging

Last synced: 3 months ago
JSON representation

Logging and environment utilities for MATLAB coding

Awesome Lists containing this project

README

        

# Adaptive-Logging-Utility
Logging and environment utilities for MATLAB coding

[![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=mathworks/Adaptive-Logging-Utility)

NEEDS:

1. I want to be able to choose the amount of information displayed in the MATLAB Command Window during the execution of a MATLAB software.

2. This logging level should automatically adjust depending on whether the code is being developed or used in production.

3. I want to easily debug any error in my code.

4. I want to automatically disable some time-consuming defensive programming commands in production mode, once they've been validated in a test phase.

5. I want to allow the end user to switch to a defensive mode where more errors are detected during the execution.

SOLUTION:

- A log level is defined that follows the Log4j log levels: OFF/FATAL/ERROR/WARN/INFO/DEBUG/TRACE

Reference: https://en.wikipedia.org/wiki/Log4j

- A environment mode is defined that follows the Development, Testing, Acceptance and Production (DTAP) standard with the 4 following environment modes: DEV/TEST/UAT/PROD

Reference: https://en.wikipedia.org/wiki/Development,_testing,_acceptance_and_production

- The log level is automatically adjusted according to the environment mode.

Examples:

If the log level is WARN, then all FATAL, ERROR and WARN messages are enabled.

In UAT mode, the minimal log level is WARN. So the log level cannot be set to OFF, FATAL or ERROR.

In PROD mode, only WARN and INFO message can be displayed.

- In DEV mode, any error pauses the execution and switches MATLAB to debug mode.

- The FATAL message includes a logical expression whose execution is skipped in PROD mode.

EXAMPLE:

>> example

USER GUIDE:

The +devel package must be located in the package of the developed tool.
For example, +myTool/+devel

The Devel interface class must be updated so that myTool is replaced by the actual tool package name.