-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathLogger.cpp
29 lines (26 loc) · 1.17 KB
/
Logger.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Copyright (c) 2014-2017 Josh Blum
// SPDX-License-Identifier: BSL-1.0
#include <Pothos/Plugin.hpp>
#include <SoapySDR/Logger.hpp>
#include <Poco/Logger.h>
#include <iostream>
/***********************************************************************
* Register Poco logging handler for SoapySDR
**********************************************************************/
static void SoapyPocoLogHandler(const SoapySDR::LogLevel logLevel, const char *message)
{
static auto &logger = Poco::Logger::get("SoapySDR");
static_assert(Poco::Message::Priority(SOAPY_SDR_FATAL) == Poco::Message::PRIO_FATAL, "SoapySDR log levels match Poco");
static_assert(Poco::Message::Priority(SOAPY_SDR_INFO) == Poco::Message::PRIO_INFORMATION, "SoapySDR log levels match Poco");
static_assert(Poco::Message::Priority(SOAPY_SDR_TRACE) == Poco::Message::PRIO_TRACE, "SoapySDR log levels match Poco");
if (logLevel == SOAPY_SDR_SSI)
{
std::cerr << message << std::flush;
return;
}
logger.log(Poco::Message("SoapySDR", message, Poco::Message::Priority(logLevel)));
}
pothos_static_block(registerSoapySDRLogHandler)
{
SoapySDR::registerLogHandler(&SoapyPocoLogHandler);
}