# Poco

# class Formatter

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

## Description

The base class for all Formatter classes.

A formatter basically takes a Message object and formats it into a string. How the formatting is exactly done is up to the implementation of Formatter. For example, a very simple implementation might simply take the message's Text (see Message::getText()). A useful implementation should at least take the Message's Time, Priority and Text fields and put them into a string.

The Formatter class supports the Configurable interface, so the behaviour of certain formatters is configurable. It also supports reference counting based garbage collection.

Trivial implementations of of getProperty() and setProperty() are provided.

Subclasses must at least provide a format() method.

## Inheritance

Direct Base Classes: Configurable, RefCountedObject

All Base Classes: Configurable, RefCountedObject

Known Derived Classes: JSONFormatter, PatternFormatter

## Member Summary

Member Functions: format, getProperty, setProperty

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

## Types Aliases

### Ptr

using Ptr = AutoPtr < Formatter >;

## Constructors

### Formatter

Formatter();

Creates the formatter.

## Destructor

### ~Formatter

~Formatter() override;

Destroys the formatter.

## Member Functions

### format

virtual void format(
const Message & msg,
std::string & text
) = 0;

Formats the message and places the result in text. Subclasses must override this method.

### getProperty

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

Throws a PropertyNotSupportedException.

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

### setProperty

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

Throws a PropertyNotSupportedException.

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