mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-24 22:14:36 +02:00
vcmi: modernize lib/logging
This commit is contained in:
parent
c8afef3408
commit
c142bf1072
@ -37,7 +37,7 @@ void CBasicLogConfigurator::configure()
|
||||
const JsonNode & loggers = loggingNode["loggers"];
|
||||
if(!loggers.isNull())
|
||||
{
|
||||
for(auto & loggerNode : loggers.Vector())
|
||||
for(const auto & loggerNode : loggers.Vector())
|
||||
{
|
||||
// Get logger
|
||||
std::string name = loggerNode["domain"].String();
|
||||
@ -148,6 +148,7 @@ void CBasicLogConfigurator::deconfigure()
|
||||
auto l = CLogger::getGlobalLogger();
|
||||
if(l != nullptr)
|
||||
l->clearTargets();
|
||||
appendToLogFile = true;
|
||||
}
|
||||
|
||||
VCMI_LIB_NAMESPACE_END
|
||||
|
@ -35,6 +35,7 @@ public:
|
||||
/// Removes all targets from the global logger.
|
||||
void deconfigure();
|
||||
|
||||
|
||||
private:
|
||||
// Gets ELogLevel enum from string. (Should be moved to CLogger as a separate function?)
|
||||
// Throws: std::runtime_error
|
||||
|
@ -75,7 +75,7 @@ CLoggerDomain CLoggerDomain::getParent() const
|
||||
if(isGlobalDomain())
|
||||
return *this;
|
||||
|
||||
const size_t pos = name.find_last_of(".");
|
||||
const size_t pos = name.find_last_of('.');
|
||||
if(pos != std::string::npos)
|
||||
return CLoggerDomain(name.substr(0, pos));
|
||||
return CLoggerDomain(DOMAIN_GLOBAL);
|
||||
@ -189,7 +189,7 @@ void CLogger::callTargets(const LogRecord & record) const
|
||||
{
|
||||
TLockGuard _(mx);
|
||||
for(const CLogger * logger = this; logger != nullptr; logger = logger->parent)
|
||||
for(auto & target : logger->targets)
|
||||
for(const auto & target : logger->targets)
|
||||
target->write(record);
|
||||
}
|
||||
|
||||
@ -235,7 +235,8 @@ CLogger * CLogManager::getLogger(const CLoggerDomain & domain)
|
||||
std::vector<std::string> CLogManager::getRegisteredDomains() const
|
||||
{
|
||||
std::vector<std::string> domains;
|
||||
for (auto& pair : loggers)
|
||||
domains.reserve(loggers.size());
|
||||
for(const auto & pair : loggers)
|
||||
{
|
||||
domains.push_back(pair.second->getDomain().getName());
|
||||
}
|
||||
@ -247,25 +248,11 @@ CLogFormatter::CLogFormatter()
|
||||
{
|
||||
}
|
||||
|
||||
CLogFormatter::CLogFormatter(const std::string & pattern)
|
||||
: pattern(pattern)
|
||||
CLogFormatter::CLogFormatter(std::string pattern):
|
||||
pattern(std::move(pattern))
|
||||
{
|
||||
}
|
||||
|
||||
CLogFormatter::CLogFormatter(const CLogFormatter & c) : pattern(c.pattern) { }
|
||||
CLogFormatter::CLogFormatter(CLogFormatter && m) : pattern(std::move(m.pattern)) { }
|
||||
|
||||
CLogFormatter & CLogFormatter::operator=(const CLogFormatter & c)
|
||||
{
|
||||
pattern = c.pattern;
|
||||
return *this;
|
||||
}
|
||||
CLogFormatter & CLogFormatter::operator=(CLogFormatter && m)
|
||||
{
|
||||
pattern = std::move(m.pattern);
|
||||
return *this;
|
||||
}
|
||||
|
||||
std::string CLogFormatter::format(const LogRecord & record) const
|
||||
{
|
||||
std::string message = pattern;
|
||||
@ -437,8 +424,8 @@ void CLogConsoleTarget::setFormatter(const CLogFormatter & formatter) { this->fo
|
||||
const CColorMapping & CLogConsoleTarget::getColorMapping() const { return colorMapping; }
|
||||
void CLogConsoleTarget::setColorMapping(const CColorMapping & colorMapping) { this->colorMapping = colorMapping; }
|
||||
|
||||
CLogFileTarget::CLogFileTarget(boost::filesystem::path filePath, bool append)
|
||||
: file(std::move(filePath), append ? std::ios_base::app : std::ios_base::out)
|
||||
CLogFileTarget::CLogFileTarget(const boost::filesystem::path & filePath, bool append):
|
||||
file(filePath, append ? std::ios_base::app : std::ios_base::out)
|
||||
{
|
||||
// formatter.setPattern("%d %l %n [%t] - %m");
|
||||
formatter.setPattern("%l %n [%t] - %m");
|
||||
|
@ -134,13 +134,8 @@ class DLL_LINKAGE CLogFormatter
|
||||
{
|
||||
public:
|
||||
CLogFormatter();
|
||||
CLogFormatter(const CLogFormatter & copy);
|
||||
CLogFormatter(CLogFormatter && move);
|
||||
|
||||
CLogFormatter(const std::string & pattern);
|
||||
|
||||
CLogFormatter & operator=(const CLogFormatter & copy);
|
||||
CLogFormatter & operator=(CLogFormatter && move);
|
||||
CLogFormatter(std::string pattern);
|
||||
|
||||
void setPattern(const std::string & pattern);
|
||||
void setPattern(std::string && pattern);
|
||||
@ -216,7 +211,7 @@ class DLL_LINKAGE CLogFileTarget : public ILogTarget
|
||||
public:
|
||||
/// Constructs a CLogFileTarget and opens the file designated by filePath. If the append parameter is true, the file
|
||||
/// will be appended to. Otherwise the file designated by filePath will be truncated before being opened.
|
||||
explicit CLogFileTarget(boost::filesystem::path filePath, bool append = true);
|
||||
explicit CLogFileTarget(const boost::filesystem::path & filePath, bool append = true);
|
||||
~CLogFileTarget();
|
||||
|
||||
const CLogFormatter & getFormatter() const;
|
||||
|
Loading…
Reference in New Issue
Block a user