# 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: AsyncChannel, Poco::Data::SQLChannel, ConsoleChannel, ColorConsoleChannel, FormattingChannel, OpcomChannel, NullChannel, SimpleFileChannel, StreamChannel, WindowsConsoleChannel, WindowsColorConsoleChannel, EventLogChannel, EventChannel, FileChannel, Logger, SplitterChannel, SyslogChannel, Poco::Net::SMTPChannel, Poco::Net::RemoteSyslogChannel, Poco::Net::RemoteSyslogListener

## Member Summary

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

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

## 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()