# Poco

# class WindowsColorConsoleChannel

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

## Description

A channel that writes to the Windows console.

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

Log messages are assumed to be UTF-8 encoded, and are converted to UTF-16 prior to writing them to the console. This is the main difference to the ConsoleChannel class, which cannot handle UTF-8 encoded messages on Windows.

Messages can be colored depending on priority.

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.

Only available on Windows platforms.

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

## Types Aliases

### Ptr

using Ptr = AutoPtr < WindowsColorConsoleChannel >;

## Enumerations

### Color

CC_BLACK = 0x0000

CC_RED = 0x0004

CC_GREEN = 0x0002

CC_BROWN = 0x0006

CC_BLUE = 0x0001

CC_MAGENTA = 0x0005

CC_CYAN = 0x0003

CC_GRAY = 0x0007

CC_DARKGRAY = 0x0008

CC_LIGHTRED = 0x000C

CC_LIGHTGREEN = 0x000A

CC_YELLOW = 0x000E

CC_LIGHTBLUE = 0x0009

CC_LIGHTMAGENTA = 0x000D

CC_LIGHTCYAN = 0x000B

CC_WHITE = 0x000F

## Constructors

### WindowsColorConsoleChannel

WindowsColorConsoleChannel();

Creates the WindowsConsoleChannel.

## Destructor

### ~WindowsColorConsoleChannel

~WindowsColorConsoleChannel();

## Member Functions

### getProperty

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

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
);

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
);

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(
WORD color
) const;

### initColors

void initColors();

### parseColor

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