IXCobraMetricsThreadedPublisher.cpp uses a lambda to log instead of std::cerr

This commit is contained in:
Benjamin Sergeant 2019-05-08 18:53:09 -07:00
parent d53c9c5ecf
commit 232aa069d2
5 changed files with 47 additions and 1 deletions

View File

@ -29,6 +29,8 @@ add_executable(ws
../third_party/jsoncpp/jsoncpp.cpp
../third_party/statsd-client-cpp/src/statsd_client.cpp
ixcore/utils/IXCoreLogger.cpp
ixcrypto/IXBase64.cpp
ixcrypto/IXHash.cpp
ixcrypto/IXUuid.cpp

View File

@ -6,6 +6,7 @@
#include "IXCobraMetricsThreadedPublisher.h"
#include <ixwebsocket/IXSetThreadName.h>
#include <ixcore/utils/IXCoreLogger.h>
#include <algorithm>
#include <stdexcept>
@ -58,7 +59,7 @@ namespace ix
ss << "Unsubscribed through subscription id: " << subscriptionId;
}
std::cerr << ss.str() << std::endl;
ix::IXCoreLogger::Log(ss.str().c_str());
});
}

View File

@ -0,0 +1,14 @@
#include "ixcore/utils/IXCoreLogger.h"
namespace ix
{
// Default do nothing logger
IXCoreLogger::LogFunc IXCoreLogger::_currentLogger = [](const char* msg){};
void IXCoreLogger::Log(const char* msg)
{
_currentLogger(msg);
}
} // ix

View File

@ -0,0 +1,22 @@
#pragma once
#include <functional>
namespace ix
{
class IXCoreLogger
{
public:
using LogFunc = std::function<void(const char*)>;
static void Log(const char* msg);
static void setLogFunction(LogFunc& func) {
_currentLogger = func;
}
private:
static LogFunc _currentLogger;
};
} // ix

View File

@ -22,11 +22,18 @@
#include <cli11/CLI11.hpp>
#include <ixwebsocket/IXSocket.h>
#include <ixwebsocket/IXNetSystem.h>
#include <ixcore/utils/IXCoreLogger.h>
int main(int argc, char** argv)
{
ix::initNetSystem();
ix::IXCoreLogger::LogFunc logFunc = [](const char* msg)
{
std::cout << msg << std::endl;
};
ix::IXCoreLogger::setLogFunction(logFunc);
CLI::App app{"ws is a websocket tool"};
app.require_subcommand();