Documentation

LogmaticFormatter extends JsonFormatter
in package

Encodes message information into JSON in a format compatible with Logmatic.

Tags
author

Julien Breux julien.breux@gmail.com

Table of Contents

Constants

BATCH_MODE_JSON  : mixed = 1
BATCH_MODE_NEWLINES  : mixed = 2
SIMPLE_DATE  : mixed = "Y-m-d\\TH:i:sP"
MARKERS  : mixed = ["sourcecode", "php"]

Properties

$appendNewline  : bool
$appName  : string
$basePath  : string
$batchMode  : self::BATCH_MODE_*
$dateFormat  : string
$hostname  : string
$ignoreEmptyContextAndExtra  : bool
$includeStacktraces  : bool
$maxNormalizeDepth  : int
$maxNormalizeItemCount  : int

Methods

__construct()  : mixed
addJsonEncodeOption()  : $this
format()  : mixed
Formats a log record.
formatBatch()  : mixed
Formats a set of log records.
getBatchMode()  : int
The batch mode option configures the formatting style for multiple records. By default, multiple records will be formatted as a JSON-encoded array. However, for compatibility with some API endpoints, alternative styles are available.
getDateFormat()  : string
getMaxNormalizeDepth()  : int
The maximum number of normalization levels to go through
getMaxNormalizeItemCount()  : int
The maximum number of items to normalize per level
includeStacktraces()  : $this
isAppendingNewlines()  : bool
True if newlines are appended to every formatted record
normalizeRecord()  : array<string|int, array<string|int, mixed>|scalar|null>
Appends the 'hostname' and 'appname' parameter for indexing by Logmatic.
normalizeValue()  : null|scalar|array<string|int, array<string|int, mixed>|scalar|null>
Normalize an arbitrary value to a scalar|array|null
removeJsonEncodeOption()  : $this
setAppName()  : $this
setBasePath()  : $this
Setting a base path will hide the base path from exception and stack trace file names to shorten them
setDateFormat()  : $this
setHostname()  : $this
setJsonPrettyPrint()  : $this
Enables `json_encode` pretty print.
setMaxNormalizeDepth()  : $this
setMaxNormalizeItemCount()  : $this
formatBatchJson()  : string
Return a JSON-encoded array of records.
formatBatchNewlines()  : string
Use new lines to separate records instead of a JSON-encoded array.
formatDate()  : string
normalize()  : null|scalar|array<string|int, array<string|int, mixed>|scalar|null|object>|object
Normalizes given $data.
normalizeException()  : array<string|int, mixed>
Normalizes given exception with or without its own stack trace based on `includeStacktraces` property.
toJson()  : string
Return the JSON representation of a value

Constants

Properties

$ignoreEmptyContextAndExtra

protected bool $ignoreEmptyContextAndExtra

$includeStacktraces

protected bool $includeStacktraces = false

Methods

__construct()

public __construct([self::BATCH_MODE_* $batchMode = self::BATCH_MODE_JSON ][, bool $appendNewline = true ][, bool $ignoreEmptyContextAndExtra = false ][, bool $includeStacktraces = false ]) : mixed
Parameters
$batchMode : self::BATCH_MODE_* = self::BATCH_MODE_JSON
$appendNewline : bool = true
$ignoreEmptyContextAndExtra : bool = false
$includeStacktraces : bool = false
Tags
throws
RuntimeException

If the function json_encode does not exist

addJsonEncodeOption()

public addJsonEncodeOption(int $option) : $this
Parameters
$option : int
Return values
$this

format()

Formats a log record.

public format(LogRecord $record) : mixed
Parameters
$record : LogRecord

A record to format

Tags
inheritDoc
Return values
mixed —

The formatted record

formatBatch()

Formats a set of log records.

public formatBatch(array<string|int, mixed> $records) : mixed
Parameters
$records : array<string|int, mixed>

A set of records to format

Tags
inheritDoc
Return values
mixed —

The formatted set of records

getBatchMode()

The batch mode option configures the formatting style for multiple records. By default, multiple records will be formatted as a JSON-encoded array. However, for compatibility with some API endpoints, alternative styles are available.

public getBatchMode() : int
Return values
int

getMaxNormalizeDepth()

The maximum number of normalization levels to go through

public getMaxNormalizeDepth() : int
Return values
int

getMaxNormalizeItemCount()

The maximum number of items to normalize per level

public getMaxNormalizeItemCount() : int
Return values
int

includeStacktraces()

public includeStacktraces([bool $include = true ]) : $this
Parameters
$include : bool = true
Return values
$this

isAppendingNewlines()

True if newlines are appended to every formatted record

public isAppendingNewlines() : bool
Return values
bool

normalizeValue()

Normalize an arbitrary value to a scalar|array|null

public normalizeValue(mixed $data) : null|scalar|array<string|int, array<string|int, mixed>|scalar|null>
Parameters
$data : mixed
Return values
null|scalar|array<string|int, array<string|int, mixed>|scalar|null>

removeJsonEncodeOption()

public removeJsonEncodeOption(int $option) : $this
Parameters
$option : int
Return values
$this

setAppName()

public setAppName(string $appName) : $this
Parameters
$appName : string
Return values
$this

setBasePath()

Setting a base path will hide the base path from exception and stack trace file names to shorten them

public setBasePath([string $path = '' ]) : $this
Parameters
$path : string = ''
Return values
$this

setDateFormat()

public setDateFormat(string $dateFormat) : $this
Parameters
$dateFormat : string
Return values
$this

setHostname()

public setHostname(string $hostname) : $this
Parameters
$hostname : string
Return values
$this

setJsonPrettyPrint()

Enables `json_encode` pretty print.

public setJsonPrettyPrint(bool $enable) : $this
Parameters
$enable : bool
Return values
$this

setMaxNormalizeDepth()

public setMaxNormalizeDepth(int $maxNormalizeDepth) : $this
Parameters
$maxNormalizeDepth : int
Return values
$this

setMaxNormalizeItemCount()

public setMaxNormalizeItemCount(int $maxNormalizeItemCount) : $this
Parameters
$maxNormalizeItemCount : int
Return values
$this

formatBatchJson()

Return a JSON-encoded array of records.

protected formatBatchJson(array<string|int, mixed> $records) : string
Parameters
$records : array<string|int, mixed>
Tags
phpstan-param

LogRecord[] $records

Return values
string

formatBatchNewlines()

Use new lines to separate records instead of a JSON-encoded array.

protected formatBatchNewlines(array<string|int, mixed> $records) : string
Parameters
$records : array<string|int, mixed>
Tags
phpstan-param

LogRecord[] $records

Return values
string

formatDate()

protected formatDate(DateTimeInterface $date) : string
Parameters
$date : DateTimeInterface
Return values
string

normalize()

Normalizes given $data.

protected normalize(mixed $data[, int $depth = 0 ]) : null|scalar|array<string|int, array<string|int, mixed>|scalar|null|object>|object
Parameters
$data : mixed
$depth : int = 0
Return values
null|scalar|array<string|int, array<string|int, mixed>|scalar|null|object>|object

normalizeException()

Normalizes given exception with or without its own stack trace based on `includeStacktraces` property.

protected normalizeException(Throwable $e[, int $depth = 0 ]) : array<string|int, mixed>
Parameters
$e : Throwable
$depth : int = 0
Tags
inheritDoc
Return values
array<string|int, mixed>

toJson()

Return the JSON representation of a value

protected toJson(mixed $data[, bool $ignoreErrors = false ]) : string
Parameters
$data : mixed
$ignoreErrors : bool = false
Tags
throws
RuntimeException

if encoding fails and errors are not ignored

Return values
string —

if encoding fails and ignoreErrors is true 'null' is returned

On this page

Search results