Listenbrainz: fixed listens parsing. fixes #262
This commit is contained in:
@@ -19,14 +19,16 @@
|
||||
|
||||
#include "utils/StreamLogger.hpp"
|
||||
|
||||
StreamLogger::StreamLogger(std::ostream& os)
|
||||
StreamLogger::StreamLogger(std::ostream& os, EnumSet<Severity> severities)
|
||||
: _os {os}
|
||||
, _severities {severities}
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
StreamLogger::processLog(const Log& log)
|
||||
{
|
||||
_os << "[" << getSeverityName(log.getSeverity()) << "] [" << getModuleName(log.getModule()) << "] " << log.getMessage() << std::endl;
|
||||
if (_severities.contains(log.getSeverity()))
|
||||
_os << "[" << getSeverityName(log.getSeverity()) << "] [" << getModuleName(log.getModule()) << "] " << log.getMessage() << std::endl;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
#pragma once
|
||||
|
||||
#include <cassert>
|
||||
#include <cstdint>
|
||||
#include <initializer_list>
|
||||
#include <limits>
|
||||
#include <type_traits>
|
||||
|
||||
template <typename T, typename underlying_type = std::uint32_t>
|
||||
@@ -47,13 +50,13 @@ class EnumSet
|
||||
|
||||
constexpr void insert(T value)
|
||||
{
|
||||
assert(static_cast<size_t>(value) < sizeof(_bitfield) * 8);
|
||||
assert(static_cast<std::size_t>(value) < sizeof(_bitfield) * 8);
|
||||
_bitfield |= (underlying_type{ 1 } << static_cast<underlying_type>(value));
|
||||
}
|
||||
|
||||
constexpr void erase(T value)
|
||||
{
|
||||
assert(static_cast<size_t>(value) < sizeof(_bitfield) * 8);
|
||||
assert(static_cast<std::size_t>(value) < sizeof(_bitfield) * 8);
|
||||
_bitfield &= ~(underlying_type{ 1 } << static_cast<underlying_type>(value));
|
||||
}
|
||||
|
||||
@@ -64,7 +67,7 @@ class EnumSet
|
||||
|
||||
constexpr bool contains(T value) const
|
||||
{
|
||||
assert(static_cast<size_t>(value) < sizeof(_bitfield) * 8);
|
||||
assert(static_cast<std::size_t>(value) < sizeof(_bitfield) * 8);
|
||||
return _bitfield & (underlying_type{ 1 } << static_cast<underlying_type>(value));
|
||||
}
|
||||
|
||||
|
||||
@@ -19,16 +19,20 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Logger.hpp"
|
||||
#include "utils/EnumSet.hpp"
|
||||
#include "utils/Logger.hpp"
|
||||
|
||||
class StreamLogger final : public Logger
|
||||
{
|
||||
public:
|
||||
StreamLogger(std::ostream& oss);
|
||||
static constexpr EnumSet<Severity> defaultSeverities {Severity::FATAL, Severity::ERROR, Severity::WARNING, Severity::INFO};
|
||||
|
||||
StreamLogger(std::ostream& oss, EnumSet<Severity> severities = defaultSeverities);
|
||||
|
||||
void processLog(const Log& log);
|
||||
|
||||
private:
|
||||
std::ostream& _os;
|
||||
const EnumSet<Severity> _severities;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user