# Poco

# class Channel

Library: Foundation
Package: Logging
Header: Poco/Channel.h

## Description

The base class for all Channel classes.

Supports reference counting based garbage collection and provides trivial implementations of getProperty() and setProperty().

## Inheritance

Direct Base Classes: Configurable, RefCountedObject

All Base Classes: Configurable, RefCountedObject

Known Derived Classes: Poco::Data::SQLChannel, AsyncChannel, ConsoleChannel, ColorConsoleChannel, EventChannel, EventLogChannel, FileChannel, FormattingChannel, Logger, NullChannel, SimpleFileChannel, SplitterChannel, StreamChannel, SyslogChannel, WindowsColorConsoleChannel, WindowsConsoleChannel, Poco::Net::RemoteSyslogChannel, Poco::Net::RemoteSyslogListener, Poco::Net::SMTPChannel

## Member Summary

Member Functions: close, getProperty, log, open, setProperty

Inherited Functions: duplicate, getProperty, referenceCount, release, setProperty

## Types Aliases

### Ptr

using Ptr = AutoPtr < Channel >;

## Constructors

### Channel

Channel();

Creates the channel and initializes the reference count to one.

## Destructor

### ~Channel

virtual ~Channel();

## Member Functions

### close

virtual void close();

Does whatever is necessary to close the channel. The default implementation does nothing.

### getProperty

std::string getProperty(
const std::string & name
) const;

Throws a PropertyNotSupportedException.

See also: Poco::Configurable::getProperty()

### log

virtual void log(
const Message & msg
) = 0;

Logs the given message to the channel. Must be overridden by subclasses.

If the channel has not been opened yet, the log() method will open it.

### open

virtual void open();

Does whatever is necessary to open the channel. The default implementation does nothing.

### setProperty

void setProperty(
const std::string & name,
const std::string & value
);

Throws a PropertyNotSupportedException.

See also: Poco::Configurable::setProperty()