Skip to content
Snippets Groups Projects
Commit 6a2d6585 authored by Olivier BICHLER's avatar Olivier BICHLER
Browse files

Merge branch 'user/cguillon/dev/log-no-color' into 'dev'

[Log] Add possibility to disable colorization of log outputs

See merge request !169
parents e754cb7b fce887fe
No related branches found
No related tags found
2 merge requests!212Version 0.3.0,!169[Log] Add possibility to disable colorization of log outputs
Pipeline #50777 passed
......@@ -145,6 +145,14 @@ public:
mConsoleLevel = level;
}
/**
* Set or disable colors on console.
* Initial value should be assumed true.
*/
static void setConsoleColor(bool enabled) {
mConsoleColor = enabled;
}
/**
* Set the minimum log level saved in the log file.
*/
......@@ -173,6 +181,7 @@ private:
static void initFile(const std::string& fileName);
static Level mConsoleLevel;
static bool mConsoleColor;
static Level mFileLevel;
static std::string mFileName;
static std::unique_ptr<FILE, decltype(&std::fclose)> mFile;
......
......@@ -82,6 +82,14 @@ void init_Log(py::module& m){
:param level: Log level.
:type level: Level
)mydelimiter")
.def_static("set_console_color", &Log::setConsoleColor, py::arg("enabled"),
R"mydelimiter(
Enables or disable color output on comsole.
Initial value should be assumed True.
:param enabled: Activate or deactivate colors on console.
:type enabled: bool
)mydelimiter")
.def_static("set_file_level", &Log::setFileLevel, py::arg("level"),
R"mydelimiter(
Set the minimum log level saved in the log file.
......
......@@ -28,6 +28,16 @@ Aidge::Log::Level Aidge::Log::mConsoleLevel = []() {
}
return Info;
}();
bool Aidge::Log::mConsoleColor = []() {
const char* logColor = std::getenv("AIDGE_LOG_COLOR");
if (logColor == nullptr)
return true;
auto logColorStr = std::string(logColor);
if (logColorStr == "off" || logColorStr == "OFF" ||
logColorStr == "0")
return false;
return true;
}();
Aidge::Log::Level Aidge::Log::mFileLevel = []() {
const char* logLevel = std::getenv("AIDGE_LOGLEVEL_FILE");
if (logLevel != nullptr) {
......@@ -55,7 +65,8 @@ void Aidge::Log::log(Level level, const std::string& msg) {
// Styles that were already applied to msg with fmt are kept also in
// the log file.
const auto modifier
= (level == Debug) ? fmt::fg(fmt::color::gray)
= !mConsoleColor ? fmt::text_style()
: (level == Debug) ? fmt::fg(fmt::color::gray)
: (level == Notice) ? fmt::fg(fmt::color::medium_purple)
: (level == Warn) ? fmt::fg(fmt::color::orange)
: (level == Error) ? fmt::fg(fmt::color::red)
......
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