class WindowsColorConsoleChannel

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


A channel that writes to the Windows console.

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

If POCO has been compiled with POCO_WIN32_UTF8, 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.


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


Color protected

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_YELLOW = 0x000E




CC_WHITE = 0x000F




Creates the WindowsConsoleChannel.


~WindowsColorConsoleChannel protected virtual


Member Functions

getProperty virtual

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.

log virtual

void log(
    const Message & msg

Logs the given message to the channel's stream.

setProperty virtual

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.

formatColor protected

std::string formatColor(
    WORD color
) const;

initColors protected

void initColors();

parseColor protected

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