35 lines
742 B
C
35 lines
742 B
C
|
#pragma once
|
||
|
|
||
|
#include "Sink.h"
|
||
|
#include <memory>
|
||
|
#include "Formatter.h"
|
||
|
#include <mutex>
|
||
|
|
||
|
namespace logging {
|
||
|
enum class Level;
|
||
|
|
||
|
class LevelFilter : public Sink {
|
||
|
public:
|
||
|
LevelFilter(std::shared_ptr<Sink> innerSink, Level minLevel);
|
||
|
void receive(const Entry& entry) override;
|
||
|
private:
|
||
|
std::shared_ptr<Sink> innerSink;
|
||
|
Level minLevel;
|
||
|
};
|
||
|
|
||
|
class StreamSink : public Sink {
|
||
|
public:
|
||
|
StreamSink(std::shared_ptr<std::ostream> stream, std::shared_ptr<Formatter> formatter);
|
||
|
void receive(const Entry& entry) override;
|
||
|
private:
|
||
|
std::shared_ptr<std::ostream> stream;
|
||
|
std::shared_ptr<Formatter> formatter;
|
||
|
};
|
||
|
|
||
|
class StdErrSink : public StreamSink {
|
||
|
public:
|
||
|
explicit StdErrSink(std::shared_ptr<Formatter> formatter);
|
||
|
};
|
||
|
|
||
|
}
|