ClickHouse/libs/libpocoext/include/Poco/Ext/LevelFilterChannel.h

56 lines
1.3 KiB
C++
Raw Normal View History

2014-04-08 07:31:51 +00:00
#pragma once
#include "Poco/Foundation.h"
#include "Poco/Channel.h"
#include "Poco/Message.h"
#include <vector>
namespace Poco
{
/// This channel sends messages only higher then specified level
class Foundation_API LevelFilterChannel : public Channel
{
public:
/// Sends the given Message to all
/// attaches channels.
void log(const Message & msg);
/// Sets or changes a configuration property.
///
/// Only the "level" property is supported, which allows setting desired level
void setProperty(const std::string & name, const std::string & value);
/// Sets the destination channel to which the formatted
/// messages are passed on.
void setChannel(Channel * channel_);
/// Returns the channel to which the formatted
/// messages are passed on.
Channel * getChannel() const;
/// Opens the attached channel.
void open();
/// Closes the attached channel.
void close();
/// Sets the Logger's log level.
void setLevel(Message::Priority);
/// Sets the Logger's log level using a symbolic value.
void setLevel(const std::string & value);
/// Returns the Logger's log level.
Message::Priority getLevel() const;
protected:
~LevelFilterChannel();
private:
Channel * channel = nullptr;
Message::Priority priority = Message::PRIO_ERROR;
};
2014-04-08 07:31:51 +00:00
}