easylogging++: add file-only logs

This commit is contained in:
moneromooo-monero 2017-03-25 19:42:12 +00:00
parent db9dc7c2df
commit 5bab044984
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
2 changed files with 12 additions and 10 deletions

View file

@ -2183,11 +2183,11 @@ void Storage::setApplicationArguments(int argc, char** argv) {
void DefaultLogDispatchCallback::handle(const LogDispatchData* data) { void DefaultLogDispatchCallback::handle(const LogDispatchData* data) {
m_data = data; m_data = data;
dispatch(m_data->logMessage()->logger()->logBuilder()->build(m_data->logMessage(), dispatch(m_data->logMessage()->logger()->logBuilder()->build(m_data->logMessage(),
m_data->dispatchAction() == base::DispatchAction::NormalLog)); m_data->dispatchAction() == base::DispatchAction::NormalLog || m_data->dispatchAction() == base::DispatchAction::FileOnlyLog));
} }
void DefaultLogDispatchCallback::dispatch(base::type::string_t&& logLine) { void DefaultLogDispatchCallback::dispatch(base::type::string_t&& logLine) {
if (m_data->dispatchAction() == base::DispatchAction::NormalLog) { if (m_data->dispatchAction() == base::DispatchAction::NormalLog || m_data->dispatchAction() == base::DispatchAction::FileOnlyLog) {
if (m_data->logMessage()->logger()->m_typedConfigurations->toFile(m_data->logMessage()->level())) { if (m_data->logMessage()->logger()->m_typedConfigurations->toFile(m_data->logMessage()->level())) {
base::type::fstream_t* fs = m_data->logMessage()->logger()->m_typedConfigurations->fileStream( base::type::fstream_t* fs = m_data->logMessage()->logger()->m_typedConfigurations->fileStream(
m_data->logMessage()->level()); m_data->logMessage()->level());
@ -2210,12 +2210,14 @@ void DefaultLogDispatchCallback::dispatch(base::type::string_t&& logLine) {
<< m_data->logMessage()->logger()->id() << "]", false); << m_data->logMessage()->logger()->id() << "]", false);
} }
} }
if (m_data->dispatchAction() != base::DispatchAction::FileOnlyLog) {
if (m_data->logMessage()->logger()->m_typedConfigurations->toStandardOutput(m_data->logMessage()->level())) { if (m_data->logMessage()->logger()->m_typedConfigurations->toStandardOutput(m_data->logMessage()->level())) {
if (ELPP->hasFlag(LoggingFlag::ColoredTerminalOutput)) if (ELPP->hasFlag(LoggingFlag::ColoredTerminalOutput))
m_data->logMessage()->logger()->logBuilder()->convertToColoredOutput(&logLine, m_data->logMessage()->level()); m_data->logMessage()->logger()->logBuilder()->convertToColoredOutput(&logLine, m_data->logMessage()->level());
ELPP_COUT << ELPP_COUT_LINE(logLine); ELPP_COUT << ELPP_COUT_LINE(logLine);
} }
} }
}
#if defined(ELPP_SYSLOG) #if defined(ELPP_SYSLOG)
else if (m_data->dispatchAction() == base::DispatchAction::SysLog) { else if (m_data->dispatchAction() == base::DispatchAction::SysLog) {
// Determine syslog priority // Determine syslog priority
@ -2249,8 +2251,8 @@ void DefaultLogDispatchCallback::dispatch(base::type::string_t&& logLine) {
void AsyncLogDispatchCallback::handle(const LogDispatchData* data) { void AsyncLogDispatchCallback::handle(const LogDispatchData* data) {
base::type::string_t logLine = data->logMessage()->logger()->logBuilder()->build(data->logMessage(), base::type::string_t logLine = data->logMessage()->logger()->logBuilder()->build(data->logMessage(),
data->dispatchAction() == base::DispatchAction::NormalLog); data->dispatchAction() == base::DispatchAction::NormalLog || data->dispatchAction() == base::DispatchAction::FileOnlyLog);
if (data->dispatchAction() == base::DispatchAction::NormalLog if ((data->dispatchAction() == base::DispatchAction::NormalLog || data->dispatchAction() == base::DispatchAction::FileOnlyLog)
&& data->logMessage()->logger()->typedConfigurations()->toStandardOutput(data->logMessage()->level())) { && data->logMessage()->logger()->typedConfigurations()->toStandardOutput(data->logMessage()->level())) {
if (ELPP->hasFlag(LoggingFlag::ColoredTerminalOutput)) if (ELPP->hasFlag(LoggingFlag::ColoredTerminalOutput))
data->logMessage()->logger()->logBuilder()->convertToColoredOutput(&logLine, data->logMessage()->level()); data->logMessage()->logger()->logBuilder()->convertToColoredOutput(&logLine, data->logMessage()->level());
@ -2305,7 +2307,7 @@ void AsyncDispatchWorker::handle(AsyncLogItem* logItem) {
Logger* logger = logMessage->logger(); Logger* logger = logMessage->logger();
base::TypedConfigurations* conf = logger->typedConfigurations(); base::TypedConfigurations* conf = logger->typedConfigurations();
base::type::string_t logLine = logItem->logLine(); base::type::string_t logLine = logItem->logLine();
if (data->dispatchAction() == base::DispatchAction::NormalLog) { if (data->dispatchAction() == base::DispatchAction::NormalLog || data->dispatchAction() == base::DispatchAction::FileOnlyLog) {
if (conf->toFile(logMessage->level())) { if (conf->toFile(logMessage->level())) {
base::type::fstream_t* fs = conf->fileStream(logMessage->level()); base::type::fstream_t* fs = conf->fileStream(logMessage->level());
if (fs != nullptr) { if (fs != nullptr) {

View file

@ -2183,7 +2183,7 @@ class RegisteredHitCounters : public base::utils::RegistryWithPred<base::HitCoun
}; };
/// @brief Action to be taken for dispatching /// @brief Action to be taken for dispatching
enum class DispatchAction : base::type::EnumType { enum class DispatchAction : base::type::EnumType {
None = 1, NormalLog = 2, SysLog = 4 None = 1, NormalLog = 2, SysLog = 4, FileOnlyLog = 8,
}; };
} // namespace base } // namespace base
template <typename T> template <typename T>