Skip to content

Logger severity string parsed for each log message #9534

Open
@julianbrost

Description

@julianbrost

For each log message and logger, Log::~Log() calls Logger::GetMinSeverity():

if (entry.Severity >= logger->GetMinSeverity())

Which in turn calls Logger::StringToSeverity() each time:

ls = Logger::StringToSeverity(severity);

Which in turn compares the string against all severities each time:

icinga2/lib/base/logger.cpp

Lines 123 to 137 in d20f3d7

LogSeverity Logger::StringToSeverity(const String& severity)
{
if (severity == "debug")
return LogDebug;
else if (severity == "notice")
return LogNotice;
else if (severity == "information")
return LogInformation;
else if (severity == "warning")
return LogWarning;
else if (severity == "critical")
return LogCritical;
else
BOOST_THROW_EXCEPTION(std::invalid_argument("Invalid severity: " + severity));
}

Instead, the severity string should be parsed once and then this value should be used.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/logLogging relatedcore/qualityImprove code, libraries, algorithms, inline docsgood first issueGood for newcomers

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions