mirror of
https://github.com/FairRootGroup/FairLogger.git
synced 2025-10-15 17:41:44 +00:00
Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
63820e5f2c | ||
|
de02bd068f | ||
|
24001470e5 | ||
|
5696fef902 | ||
|
80b5eb6fb1 | ||
|
c26d4ba013 |
@@ -47,10 +47,6 @@ EndIf()
|
||||
|
||||
Ctest_Start($ENV{ctest_model})
|
||||
|
||||
If(NOT $ENV{ctest_model} MATCHES Experimental)
|
||||
Ctest_Update(SOURCE "${CTEST_SOURCE_DIRECTORY}")
|
||||
EndIf()
|
||||
|
||||
Ctest_Configure(BUILD "${CTEST_BINARY_DIRECTORY}"
|
||||
OPTIONS "${configure_options}"
|
||||
)
|
||||
|
55
Jenkinsfile.nightly
Normal file
55
Jenkinsfile.nightly
Normal file
@@ -0,0 +1,55 @@
|
||||
#!groovy
|
||||
|
||||
def specToLabel(Map spec) {
|
||||
return "${spec.os}-${spec.arch}-${spec.compiler}-FairSoft_${spec.fairsoft}"
|
||||
}
|
||||
|
||||
def buildMatrix(List specs, Closure callback) {
|
||||
def nodes = [:]
|
||||
for (spec in specs) {
|
||||
def label = specToLabel(spec)
|
||||
nodes[label] = {
|
||||
node(label) {
|
||||
try {
|
||||
deleteDir()
|
||||
checkout scm
|
||||
|
||||
callback.call(spec, label)
|
||||
|
||||
deleteDir()
|
||||
} catch (e) {
|
||||
deleteDir()
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return nodes
|
||||
}
|
||||
|
||||
pipeline{
|
||||
agent none
|
||||
triggers { cron('H 2 * * *') }
|
||||
stages {
|
||||
stage("Run Nightly Build/Test Matrix") {
|
||||
steps{
|
||||
script {
|
||||
parallel(buildMatrix([
|
||||
[os: 'Debian8', arch: 'x86_64', compiler: 'gcc4.9', fairsoft: 'apr18'],
|
||||
[os: 'MacOS10.11', arch: 'x86_64', compiler: 'AppleLLVM8.0.0', fairsoft: 'apr18'],
|
||||
[os: 'MacOS10.13', arch: 'x86_64', compiler: 'AppleLLVM9.0.0', fairsoft: 'apr18'],
|
||||
]) { spec, label ->
|
||||
sh '''\
|
||||
echo "export BUILDDIR=$PWD/build" >> Dart.cfg
|
||||
echo "export SOURCEDIR=$PWD" >> Dart.cfg
|
||||
echo "export PATH=$SIMPATH/bin:$PATH" >> Dart.cfg
|
||||
echo "export GIT_BRANCH=dev" >> Dart.cfg
|
||||
'''
|
||||
sh './Dart.sh Nightly Dart.cfg'
|
||||
sh './Dart.sh Profile Dart.cfg'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -6,8 +6,6 @@
|
||||
# copied verbatim in the file "LICENSE" #
|
||||
################################################################################
|
||||
|
||||
cmake_minimum_required(VERSION 3.9.4 FATAL_ERROR)
|
||||
|
||||
@PACKAGE_INIT@
|
||||
|
||||
### General variables for project discovery/inspection
|
||||
|
@@ -130,19 +130,30 @@ macro(set_fairlogger_defaults)
|
||||
|
||||
# Define install dirs
|
||||
set(FairLogger_INSTALL_BINDIR ${CMAKE_INSTALL_BINDIR})
|
||||
set(FairLogger_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME_LOWER})
|
||||
set(FairLogger_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR})
|
||||
set(FairLogger_INSTALL_INCDIR ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME_LOWER})
|
||||
set(FairLogger_INSTALL_DATADIR ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME_LOWER})
|
||||
|
||||
# https://cmake.org/Wiki/CMake_RPATH_handling#Always_full_RPATH
|
||||
# https://cmake.org/Wiki/CMake_RPATH_handling
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_LIBDIR}" isSystemDir)
|
||||
list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${FairLogger_INSTALL_LIBDIR}" isSystemDir)
|
||||
if("${isSystemDir}" STREQUAL "-1")
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_LIBDIR}")
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} "-Wl,--enable-new-dtags")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS} "-Wl,--enable-new-dtags")
|
||||
set(CMAKE_INSTALL_RPATH "$ORIGIN/../${FairLogger_INSTALL_LIBDIR}")
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
set(CMAKE_INSTALL_RPATH "@loader_path/../${FairLogger_INSTALL_LIBDIR}")
|
||||
else()
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${FairLogger_INSTALL_LIBDIR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Define export set, only one for now
|
||||
set(FairLogger_EXPORT_SET ${PROJECT_NAME}Targets)
|
||||
|
||||
set(CMAKE_CXX_FLAGS_NIGHTLY "-O2 -g -Wshadow -Wall -Wextra")
|
||||
set(CMAKE_CXX_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs -Wshadow -Wall -Wextra -Wunused-variable")
|
||||
endmacro()
|
||||
|
||||
|
||||
|
@@ -147,10 +147,12 @@ const unordered_map<string, Verbosity> Logger::fVerbosityMap =
|
||||
{ "high", Verbosity::high },
|
||||
{ "medium", Verbosity::medium },
|
||||
{ "low", Verbosity::low },
|
||||
{ "verylow", Verbosity::verylow },
|
||||
{ "VERYHIGH", Verbosity::veryhigh },
|
||||
{ "HIGH", Verbosity::high },
|
||||
{ "MEDIUM", Verbosity::medium },
|
||||
{ "LOW", Verbosity::low }
|
||||
{ "LOW", Verbosity::low },
|
||||
{ "VERYLOW", Verbosity::verylow }
|
||||
};
|
||||
|
||||
const unordered_map<string, Severity> Logger::fSeverityMap =
|
||||
@@ -161,16 +163,14 @@ const unordered_map<string, Severity> Logger::fSeverityMap =
|
||||
{ "ERROR", Severity::error },
|
||||
{ "warn", Severity::warn },
|
||||
{ "WARN", Severity::warn },
|
||||
{ "warning", Severity::warning },
|
||||
{ "WARNING", Severity::warning },
|
||||
{ "warning", Severity::warn },
|
||||
{ "WARNING", Severity::warn },
|
||||
{ "state", Severity::state },
|
||||
{ "STATE", Severity::state },
|
||||
{ "info", Severity::info },
|
||||
{ "INFO", Severity::info },
|
||||
{ "debug", Severity::debug },
|
||||
{ "DEBUG", Severity::debug },
|
||||
{ "trace", Severity::trace },
|
||||
{ "TRACE", Severity::trace },
|
||||
{ "debug1", Severity::debug1 },
|
||||
{ "DEBUG1", Severity::debug1 },
|
||||
{ "debug2", Severity::debug2 },
|
||||
@@ -178,7 +178,9 @@ const unordered_map<string, Severity> Logger::fSeverityMap =
|
||||
{ "debug3", Severity::debug3 },
|
||||
{ "DEBUG3", Severity::debug3 },
|
||||
{ "debug4", Severity::debug4 },
|
||||
{ "DEBUG4", Severity::debug4 }
|
||||
{ "DEBUG4", Severity::debug4 },
|
||||
{ "trace", Severity::trace },
|
||||
{ "TRACE", Severity::trace }
|
||||
};
|
||||
|
||||
const array<string, 12> Logger::fSeverityNames =
|
||||
@@ -199,9 +201,10 @@ const array<string, 12> Logger::fSeverityNames =
|
||||
}
|
||||
};
|
||||
|
||||
const array<string, 4> Logger::fVerbosityNames =
|
||||
const array<string, 5> Logger::fVerbosityNames =
|
||||
{
|
||||
{
|
||||
"verylow",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
@@ -253,6 +256,11 @@ void Logger::SetConsoleSeverity(const string& severityStr)
|
||||
}
|
||||
}
|
||||
|
||||
Severity Logger::GetConsoleSeverity()
|
||||
{
|
||||
return fConsoleSeverity;
|
||||
}
|
||||
|
||||
void Logger::SetFileSeverity(const Severity severity)
|
||||
{
|
||||
fFileSeverity = severity;
|
||||
@@ -291,6 +299,82 @@ void Logger::SetCustomSeverity(const string& key, const string& severityStr)
|
||||
}
|
||||
}
|
||||
|
||||
auto Logger::CycleConsoleSeverityUp() -> void
|
||||
{
|
||||
size_t current = static_cast<size_t>(fConsoleSeverity);
|
||||
if (current == fSeverityNames.size() - 1) {
|
||||
SetConsoleSeverity(static_cast<Severity>(0));
|
||||
} else {
|
||||
SetConsoleSeverity(static_cast<Severity>(current + 1));
|
||||
}
|
||||
size_t newCurrent = static_cast<size_t>(fConsoleSeverity);
|
||||
stringstream ss;
|
||||
|
||||
for (int i = 0; i < fSeverityNames.size(); ++i) {
|
||||
ss << (i == newCurrent ? ">" : " ") << fSeverityNames.at(i) << (i == newCurrent ? "<" : " ");
|
||||
}
|
||||
|
||||
ss << "\n\n";
|
||||
cout << ss.str() << flush;
|
||||
}
|
||||
|
||||
auto Logger::CycleConsoleSeverityDown() -> void
|
||||
{
|
||||
size_t current = static_cast<size_t>(fConsoleSeverity);
|
||||
if (current == 0) {
|
||||
SetConsoleSeverity(static_cast<Severity>(fSeverityNames.size() - 1));
|
||||
} else {
|
||||
SetConsoleSeverity(static_cast<Severity>(current - 1));
|
||||
}
|
||||
size_t newCurrent = static_cast<size_t>(fConsoleSeverity);
|
||||
stringstream ss;
|
||||
|
||||
for (int i = 0; i < fSeverityNames.size(); ++i) {
|
||||
ss << (i == newCurrent ? ">" : " ") << fSeverityNames.at(i) << (i == newCurrent ? "<" : " ");
|
||||
}
|
||||
|
||||
ss << "\n\n";
|
||||
cout << ss.str() << flush;
|
||||
}
|
||||
|
||||
auto Logger::CycleVerbosityUp() -> void
|
||||
{
|
||||
size_t current = static_cast<size_t>(fVerbosity);
|
||||
if (current == fVerbosityNames.size() - 1) {
|
||||
SetVerbosity(static_cast<Verbosity>(0));
|
||||
} else {
|
||||
SetVerbosity(static_cast<Verbosity>(current + 1));
|
||||
}
|
||||
size_t newCurrent = static_cast<size_t>(fVerbosity);
|
||||
stringstream ss;
|
||||
|
||||
for (int i = 0; i < fVerbosityNames.size(); ++i) {
|
||||
ss << (i == newCurrent ? ">" : " ") << fVerbosityNames.at(i) << (i == newCurrent ? "<" : " ");
|
||||
}
|
||||
|
||||
ss << "\n\n";
|
||||
cout << ss.str() << flush;
|
||||
}
|
||||
|
||||
auto Logger::CycleVerbosityDown() -> void
|
||||
{
|
||||
size_t current = static_cast<size_t>(fVerbosity);
|
||||
if (current == 0) {
|
||||
SetVerbosity(static_cast<Verbosity>(fVerbosityNames.size() - 1));
|
||||
} else {
|
||||
SetVerbosity(static_cast<Verbosity>(current - 1));
|
||||
}
|
||||
size_t newCurrent = static_cast<size_t>(fVerbosity);
|
||||
stringstream ss;
|
||||
|
||||
for (int i = 0; i < fVerbosityNames.size(); ++i) {
|
||||
ss << (i == newCurrent ? ">" : " ") << fVerbosityNames.at(i) << (i == newCurrent ? "<" : " ");
|
||||
}
|
||||
|
||||
ss << "\n\n";
|
||||
cout << ss.str() << flush;
|
||||
}
|
||||
|
||||
void Logger::UpdateMinSeverity()
|
||||
{
|
||||
fMinSeverity = (fConsoleSeverity <= fFileSeverity) ? fFileSeverity : fConsoleSeverity;
|
||||
@@ -320,6 +404,19 @@ bool Logger::Logging(Severity severity)
|
||||
}
|
||||
}
|
||||
|
||||
bool Logger::Logging(const std::string& severityStr)
|
||||
{
|
||||
if (fSeverityMap.count(severityStr))
|
||||
{
|
||||
return Logging(fSeverityMap.at(severityStr));
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG(error) << "Unknown severity setting: '" << severityStr;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void Logger::SetVerbosity(const Verbosity verbosity)
|
||||
{
|
||||
fVerbosity = verbosity;
|
||||
@@ -338,6 +435,11 @@ void Logger::SetVerbosity(const string& verbosityStr)
|
||||
}
|
||||
}
|
||||
|
||||
Verbosity Logger::GetVerbosity()
|
||||
{
|
||||
return fVerbosity;
|
||||
}
|
||||
|
||||
void Logger::SetConsoleColor(const bool colored)
|
||||
{
|
||||
fColored = colored;
|
||||
@@ -490,14 +592,20 @@ Logger& Logger::Log()
|
||||
fBWOut << "[" << tsstr << "]";
|
||||
}
|
||||
|
||||
fBWOut << "[" << fMetaData.severity_name << "]";
|
||||
if (fVerbosity > Verbosity::verylow)
|
||||
{
|
||||
fBWOut << "[" << fMetaData.severity_name << "]";
|
||||
}
|
||||
|
||||
if (fVerbosity == Verbosity::veryhigh)
|
||||
{
|
||||
fBWOut << "[" << fMetaData.file << ":" << fMetaData.line << ":" << fMetaData.func << "]";
|
||||
}
|
||||
|
||||
fBWOut << " ";
|
||||
if (fVerbosity != Verbosity::verylow)
|
||||
{
|
||||
fBWOut << " ";
|
||||
}
|
||||
}
|
||||
|
||||
if (fColored && (LoggingToConsole()))
|
||||
@@ -512,14 +620,20 @@ Logger& Logger::Log()
|
||||
fColorOut << "[" << startColor(Color::fgCyan) << tsstr << endColor() << "]";
|
||||
}
|
||||
|
||||
fColorOut << "[" << ColoredSeverityWriter(fMetaData.severity) << "]";
|
||||
if (fVerbosity > Verbosity::verylow)
|
||||
{
|
||||
fColorOut << "[" << ColoredSeverityWriter(fMetaData.severity) << "]";
|
||||
}
|
||||
|
||||
if (fVerbosity == Verbosity::veryhigh)
|
||||
{
|
||||
fColorOut << "[" << ColorOut(Color::fgBlue, fMetaData.file) << ":" << ColorOut(Color::fgYellow, fMetaData.line) << ":" << ColorOut(Color::fgBlue, fMetaData.func) << "]";
|
||||
}
|
||||
|
||||
fColorOut << " ";
|
||||
if (fVerbosity != Verbosity::verylow)
|
||||
{
|
||||
fColorOut << " ";
|
||||
}
|
||||
}
|
||||
|
||||
return *this;
|
||||
|
@@ -59,17 +59,20 @@ enum class Severity : int
|
||||
};
|
||||
|
||||
// verbosity levels:
|
||||
// verylow: message
|
||||
// low: [severity] message
|
||||
// medium: [HH:MM:SS][severity] message
|
||||
// high: [process name][HH:MM:SS:µS][severity] message
|
||||
// veryhigh: [process name][HH:MM:SS:µS][severity][file:line:function] message
|
||||
enum class Verbosity : int
|
||||
{
|
||||
verylow,
|
||||
low,
|
||||
medium,
|
||||
high,
|
||||
veryhigh,
|
||||
// backwards-compatibility:
|
||||
VERYLOW = verylow,
|
||||
LOW = low,
|
||||
MEDIUM = medium,
|
||||
HIGH = high,
|
||||
@@ -116,6 +119,7 @@ class Logger
|
||||
|
||||
static void SetConsoleSeverity(const Severity severity);
|
||||
static void SetConsoleSeverity(const std::string& severityStr);
|
||||
static Severity GetConsoleSeverity();
|
||||
|
||||
static void SetFileSeverity(const Severity severity);
|
||||
static void SetFileSeverity(const std::string& severityStr);
|
||||
@@ -123,10 +127,17 @@ class Logger
|
||||
static void SetCustomSeverity(const std::string& key, const Severity severity);
|
||||
static void SetCustomSeverity(const std::string& key, const std::string& severityStr);
|
||||
|
||||
static void CycleConsoleSeverityUp();
|
||||
static void CycleConsoleSeverityDown();
|
||||
static void CycleVerbosityUp();
|
||||
static void CycleVerbosityDown();
|
||||
|
||||
static bool Logging(const Severity severity);
|
||||
static bool Logging(const std::string& severityStr);
|
||||
|
||||
static void SetVerbosity(const Verbosity verbosity);
|
||||
static void SetVerbosity(const std::string& verbosityStr);
|
||||
static Verbosity GetVerbosity();
|
||||
|
||||
static void SetConsoleColor(const bool colored = true);
|
||||
|
||||
@@ -177,7 +188,7 @@ class Logger
|
||||
static const std::unordered_map<std::string, Verbosity> fVerbosityMap;
|
||||
static const std::unordered_map<std::string, Severity> fSeverityMap;
|
||||
static const std::array<std::string, 12> fSeverityNames;
|
||||
static const std::array<std::string, 4> fVerbosityNames;
|
||||
static const std::array<std::string, 5> fVerbosityNames;
|
||||
|
||||
virtual ~Logger() noexcept(false);
|
||||
|
||||
|
@@ -39,6 +39,9 @@ void printAllVerbositiesWithSeverity(Severity sev)
|
||||
{
|
||||
Logger::SetConsoleSeverity(sev);
|
||||
|
||||
cout << endl << "cout: >>> testing severity '" << Logger::SeverityName(sev) << "' with 'verylow' verbosity..." << endl;
|
||||
Logger::SetVerbosity(Verbosity::verylow);
|
||||
printEverySeverity();
|
||||
cout << endl << "cout: >>> testing severity '" << Logger::SeverityName(sev) << "' with 'low' verbosity..." << endl;
|
||||
Logger::SetVerbosity(Verbosity::low);
|
||||
printEverySeverity();
|
||||
@@ -57,6 +60,8 @@ void silentlyPrintAllVerbositiesWithSeverity(Severity sev)
|
||||
{
|
||||
Logger::SetConsoleSeverity(sev);
|
||||
|
||||
Logger::SetVerbosity(Verbosity::verylow);
|
||||
printEverySeverity();
|
||||
Logger::SetVerbosity(Verbosity::low);
|
||||
printEverySeverity();
|
||||
Logger::SetVerbosity(Verbosity::medium);
|
||||
|
Reference in New Issue
Block a user