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

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