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: ...@@ -145,6 +145,14 @@ public:
mConsoleLevel = level; 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. * Set the minimum log level saved in the log file.
*/ */
...@@ -173,6 +181,7 @@ private: ...@@ -173,6 +181,7 @@ private:
static void initFile(const std::string& fileName); static void initFile(const std::string& fileName);
static Level mConsoleLevel; static Level mConsoleLevel;
static bool mConsoleColor;
static Level mFileLevel; static Level mFileLevel;
static std::string mFileName; static std::string mFileName;
static std::unique_ptr<FILE, decltype(&std::fclose)> mFile; static std::unique_ptr<FILE, decltype(&std::fclose)> mFile;
......
...@@ -82,6 +82,14 @@ void init_Log(py::module& m){ ...@@ -82,6 +82,14 @@ void init_Log(py::module& m){
:param level: Log level. :param level: Log level.
:type level: Level :type level: Level
)mydelimiter") )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"), .def_static("set_file_level", &Log::setFileLevel, py::arg("level"),
R"mydelimiter( R"mydelimiter(
Set the minimum log level saved in the log file. Set the minimum log level saved in the log file.
......
...@@ -28,6 +28,16 @@ Aidge::Log::Level Aidge::Log::mConsoleLevel = []() { ...@@ -28,6 +28,16 @@ Aidge::Log::Level Aidge::Log::mConsoleLevel = []() {
} }
return Info; 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 = []() { Aidge::Log::Level Aidge::Log::mFileLevel = []() {
const char* logLevel = std::getenv("AIDGE_LOGLEVEL_FILE"); const char* logLevel = std::getenv("AIDGE_LOGLEVEL_FILE");
if (logLevel != nullptr) { if (logLevel != nullptr) {
...@@ -55,7 +65,8 @@ void Aidge::Log::log(Level level, const std::string& msg) { ...@@ -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 // Styles that were already applied to msg with fmt are kept also in
// the log file. // the log file.
const auto modifier 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 == Notice) ? fmt::fg(fmt::color::medium_purple)
: (level == Warn) ? fmt::fg(fmt::color::orange) : (level == Warn) ? fmt::fg(fmt::color::orange)
: (level == Error) ? fmt::fg(fmt::color::red) : (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