// Copyright (C) 2011-2015 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
#include <config.h>
#include <string><--- Include file: not found. Please note: Cppcheck does not need standard library headers to get proper results.
#include <log/logger_name.h>
namespace isc {
namespace log {
namespace {
// Obtain the root logger name in a way that is safe for statically-initialized
// objects.
std::string&
getRootLoggerNameInternal() {
static std::string root_name;
return (root_name);
}
} // Anonymous namespace
void
setRootLoggerName(const std::string& name) {
getRootLoggerNameInternal() = name;
}
const std::string& getRootLoggerName() {
return (getRootLoggerNameInternal());
}
const std::string& getDefaultRootLoggerName() {
static std::string root_name("kea");
return (root_name);
}
std::string expandLoggerName(const std::string& name) {
// Are we the root logger, or does the logger name start with
// the string "<root_logger_name>.". If so, use a logger
// whose name is the one given.
if ((name == getRootLoggerName()) ||
(name.find(getRootLoggerName() + std::string(".")) == 0)) {<--- Inefficient usage of string::find() in condition; string::starts_with() could be faster. [+]Either inefficient or wrong usage of string::find(). string::starts_with() will be faster if string::find's result is compared with 0, because it will not scan the whole string. If your intention is to check that there are no findings in the string, you should compare with std::string::npos.
return (name);
}
// Anything else is assumed to be a sub-logger of the root logger.
return (getRootLoggerName() + "." + name);
}
} // namespace log
} // namespace isc