# Poco

# class ColorConsoleChannel

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

## Description

A channel that writes to an ostream.

Only the message's text is written, followed by a newline.

Messages can be colored depending on priority. The console device must support ANSI escape codes in order to display colored messages.

To enable message coloring, set the "enableColors" property to true (default). Furthermore, colors can be configured by setting the following properties (default values are given in parenthesis):

- traceColor (gray)
- debugColor (gray)
- informationColor (default)
- noticeColor (default)
- warningColor (yellow)
- errorColor (lightRed)
- criticalColor (lightRed)
- fatalColor (lightRed)

The following color values are supported:

- default
- black
- red
- green
- brown
- blue
- magenta
- cyan
- gray
- darkgray
- lightRed
- lightGreen
- yellow
- lightBlue
- lightMagenta
- lightCyan
- white

Chain this channel to a FormattingChannel with an appropriate Formatter to control what is contained in the text.

Similar to StreamChannel, except that a static mutex is used to protect against multiple console channels concurrently writing to the same stream.

## Inheritance

Direct Base Classes: Channel

All Base Classes: Channel, Configurable, RefCountedObject

## Member Summary

Member Functions: formatColor, getProperty, initColors, log, parseColor, setProperty

Inherited Functions: close, duplicate, getProperty, log, open, referenceCount, release, setProperty

## Enumerations

### Color

CC_DEFAULT = 0x0027

CC_BLACK = 0x001e

CC_RED = 0x001f

CC_GREEN = 0x0020

CC_BROWN = 0x0021

CC_BLUE = 0x0022

CC_MAGENTA = 0x0023

CC_CYAN = 0x0024

CC_GRAY = 0x0025

CC_DARKGRAY = 0x011e

CC_LIGHTRED = 0x011f

CC_LIGHTGREEN = 0x0120

CC_YELLOW = 0x0121

CC_LIGHTBLUE = 0x0122

CC_LIGHTMAGENTA = 0x0123

CC_LIGHTCYAN = 0x0124

CC_WHITE = 0x0125

## Constructors

### ColorConsoleChannel

ColorConsoleChannel();

Creates the channel and attaches std::clog.

### ColorConsoleChannel

ColorConsoleChannel(
std::ostream & str
);

Creates the channel using the given stream.

## Destructor

### ~ColorConsoleChannel

~ColorConsoleChannel() override;

## Member Functions

### getProperty

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

Returns the value of the property with the given name. See setProperty() for a description of the supported properties.

See also: Poco::Channel::getProperty()

### log

void log(
const Message & msg
) override;

Logs the given message to the channel's stream.

See also: Poco::Channel::log()

### setProperty

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

Sets the property with the given name.

The following properties are supported:

- enableColors: Enable or disable colors.
- traceColor: Specify color for trace messages.
- debugColor: Specify color for debug messages.
- informationColor: Specify color for information messages.
- noticeColor: Specify color for notice messages.
- warningColor: Specify color for warning messages.
- errorColor: Specify color for error messages.
- criticalColor: Specify color for critical messages.
- fatalColor: Specify color for fatal messages.

See the class documentation for a list of supported color values.

See also: Poco::Channel::setProperty()

### formatColor

std::string formatColor(
Color color
) const;

### initColors

void initColors();

### parseColor

Color parseColor(
const std::string & color
) const;