Skip to content

Phalcon Logger

Updated View as Markdown

Logger\AbstractLogger

AbstractSource on GitHub

Abstract Logger Class

Abstract logger class, providing common functionality. A formatter interface is available as well as an adapter one. Adapters can be created easily using the built in AdapterFactory. A LoggerFactory is also available that allows developers to create new instances of the Logger or load them from config files (see Phalcon\Config\Config object).

@property AdapterInterface[] $adapters @property array $excluded @property int $logLevel @property string $name @property string $timezone

Uses DateTimeImmutable · DateTimeZone · Exception · Phalcon\Logger\Adapter\AdapterInterface · Phalcon\Logger\Exceptions\AdapterNotFound · Phalcon\Logger\Exceptions\NoAdaptersConfigured

Method Summary

Constants

intALERT = 2
intCRITICAL = 1
intCUSTOM = 8
intDEBUG = 7
intEMERGENCY = 0
intERROR = 3
intINFO = 6
intNOTICE = 5
intTRACE = 9
intWARNING = 4

Properties

protectedAdapterInterface[]$adapters = []The adapter stack
protectedarray$excluded = []The excluded adapters for this log process
protectedint$logLevel = 8Minimum log level for the logger
protectedstring$name = ""
protectedDateTimeZone$timezone

Methods

Public · 10

__construct()

public function __construct(
    string $name,
    array $adapters = [],
    DateTimeZone $timezone = null
);

Constructor.

addAdapter()

public function addAdapter(
    string $name,
    AdapterInterface $adapter
): static;

Add an adapter to the stack. For processing we use FIFO

excludeAdapters()

public function excludeAdapters( array $adapters = [] ): static;

Exclude certain adapters.

getAdapter()

public function getAdapter( string $name ): AdapterInterface;

Returns an adapter from the stack

getAdapters()

public function getAdapters(): array;

Returns the adapter stack array

getLogLevel()

public function getLogLevel(): int;

Returns the log level

getName()

public function getName(): string;

Returns the name of the logger

removeAdapter()

public function removeAdapter( string $name ): static;

Removes an adapter from the stack

setAdapters()

public function setAdapters( array $adapters ): static;

Sets the adapters stack overriding what is already there

setLogLevel()

public function setLogLevel( int $level ): static;

Sets the adapters stack overriding what is already there

Protected · 3

addMessage()

protected function addMessage(
    int $level,
    string $message,
    array $context = []
): bool;

Adds a message to each handler for processing

getLevelNumber()

protected function getLevelNumber( mixed $level ): int;

Converts the level from string/word to an integer

getLevels()

protected function getLevels(): array;

Returns an array of log levels with integer to string conversion

Logger\AdapterFactory

ClassSource on GitHub

Factory used to create adapters used for Logging

Uses Phalcon\Factory\AbstractFactory · Phalcon\Logger\Adapter\AdapterInterface · Phalcon\Logger\Exception

Method Summary

Methods

Public · 2

__construct()

public function __construct( array $services = [] );

AdapterFactory constructor.

newInstance()

public function newInstance(
    string $name,
    string $fileName,
    array $options = []
): AdapterInterface;

Create a new instance of the adapter

Protected · 2

getExceptionClass()

protected function getExceptionClass(): string;

getServices()

protected function getServices(): array;

Returns the available adapters

Logger\Adapter\AbstractAdapter

AbstractSource on GitHub

Class AbstractAdapter

@property string $defaultFormatter @property FormatterInterface $formatter @property bool $inTransaction @property array $queue

Uses Phalcon\Logger\Exceptions\DeserializationFailed · Phalcon\Logger\Exceptions\SerializationFailed · Phalcon\Logger\Exceptions\TransactionAlreadyActive · Phalcon\Logger\Exceptions\TransactionNotActive · Phalcon\Logger\Formatter\FormatterInterface · Phalcon\Logger\Formatter\Line · Phalcon\Logger\Item

Method Summary

Properties

protectedstring$defaultFormatter = "Phalcon\Logger\Formatter\Line"Name of the default formatter class
protectedFormatterInterface|null$formatter = nullFormatter
protectedbool$inTransaction = falseTells if there is an active transaction or not
protectedarray$queue = []Array with messages queued in the transaction
protectedint$queueLimit = 0Maximum number of items retained in the transaction queue. 0 (default) keeps the original unbounded behavior; a positive value drops the oldest queued item FIFO before a new one is appended in add().

Methods

Public · 13

__destruct()

public function __destruct();

Destructor cleanup

__serialize()

public function __serialize(): array;

Prevent serialization

__unserialize()

public function __unserialize( array $data ): void;

Prevent unserialization

add()

public function add( Item $item ): AdapterInterface;

Adds a message to the queue

begin()

public function begin(): AdapterInterface;

Starts a transaction

commit()

public function commit(): AdapterInterface;

Commits the internal transaction

getFormatter()

public function getFormatter(): FormatterInterface;

getQueueLimit()

public function getQueueLimit(): int;

Returns the configured transaction-queue cap (0 = unlimited)

inTransaction()

public function inTransaction(): bool;

Returns the whether the logger is currently in an active transaction or not

process()

abstract public function process( Item $item ): void;

Processes the message in the adapter

rollback()

public function rollback(): AdapterInterface;

Rollbacks the internal transaction

setFormatter()

public function setFormatter( FormatterInterface $formatter ): AdapterInterface;

Sets the message formatter

setQueueLimit()

public function setQueueLimit( int $queueLimit ): AdapterInterface;

Sets the maximum number of items retained in the transaction queue. 0 disables the cap (the default; preserves the original unbounded behavior).

Protected · 1

getFormattedItem()

protected function getFormattedItem( Item $item ): string;

Returns the formatted item

Logger\Adapter\AdapterInterface

InterfaceSource on GitHub

Phalcon\Logger\AdapterInterface

Interface for Phalcon\Logger adapters

  • Phalcon\Logger\Adapter\AdapterInterface

Uses Phalcon\Logger\Formatter\FormatterInterface · Phalcon\Logger\Item

Method Summary

Methods

Public · 9

add()

public function add( Item $item ): AdapterInterface;

Adds a message in the queue

begin()

public function begin(): AdapterInterface;

Starts a transaction

close()

public function close(): bool;

Closes the logger

commit()

public function commit(): AdapterInterface;

Commits the internal transaction

getFormatter()

public function getFormatter(): FormatterInterface;

Returns the internal formatter

inTransaction()

public function inTransaction(): bool;

Returns the whether the logger is currently in an active transaction or not

process()

public function process( Item $item ): void;

Processes the message in the adapter

rollback()

public function rollback(): AdapterInterface;

Rollbacks the internal transaction

setFormatter()

public function setFormatter( FormatterInterface $formatter ): AdapterInterface;

Sets the message formatter

Logger\Adapter\Exceptions\FileOpenFailed

ClassSource on GitHub

This file is part of the Phalcon Framework.

(c) Phalcon Team <[email protected]>

For the full copyright and license information, please view the LICENSE.txt file that was distributed with this source code.

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct(
    string $name,
    string $mode
);

Logger\Adapter\Exceptions\InvalidStreamMode

ClassSource on GitHub

This file is part of the Phalcon Framework.

(c) Phalcon Team <[email protected]>

For the full copyright and license information, please view the LICENSE.txt file that was distributed with this source code.

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Logger\Adapter\Exceptions\SyslogOpenFailed

ClassSource on GitHub

This file is part of the Phalcon Framework.

(c) Phalcon Team <[email protected]>

For the full copyright and license information, please view the LICENSE.txt file that was distributed with this source code.

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct(
    string $name,
    int $facility
);

Logger\Adapter\Noop

ClassSource on GitHub

Class Noop

@package Phalcon\Logger\Adapter

Uses Phalcon\Logger\Item

Method Summary

Methods

Public · 2

close()

public function close(): bool;

Closes the stream

process()

public function process( Item $item ): void;

Processes the message i.e. writes it to the file

Logger\Adapter\Stream

ClassSource on GitHub

Phalcon\Logger\Adapter\Stream

Adapter to store logs in plain text files

$logger = new \Phalcon\Logger\Adapter\Stream('app/logs/test.log');

$logger->log('This is a message');
$logger->log(\Phalcon\Logger\Enum::ERROR, 'This is an error');
$logger->error('This is another error');

$logger->close();

@property resource|null $handler @property string $mode @property string $name

Uses Phalcon\Logger\Adapter\Exceptions\FileOpenFailed · Phalcon\Logger\Adapter\Exceptions\InvalidStreamMode · Phalcon\Logger\Item

Method Summary

Properties

protectedresource|null$handler = nullStream handler resource
protectedstring$mode = "ab"The file open mode. Defaults to 'ab'
protectedstring$nameStream name

Methods

Public · 4

__construct()

public function __construct(
    string $name,
    array $options = []
);

Stream constructor.

close()

public function close(): bool;

Closes the stream

getName()

public function getName(): string;

Stream name

process()

public function process( Item $item ): void;

Processes the message i.e. writes it to the file

Protected · 3

phpFclose()

protected function phpFclose( mixed $handle ): bool;

@todo to be removed when we get traits

phpFopen()

protected function phpFopen(
    string $filename,
    string $mode
);

@todo to be removed when we get traits

phpFwrite()

protected function phpFwrite(
    mixed $handle,
    string $message
);

@todo to be removed when we get traits

Logger\Adapter\Syslog

ClassSource on GitHub

Class Syslog

@property string $defaultFormatter @property int $facility @property string $name @property bool $opened @property int $option

Uses Phalcon\Logger\Adapter\Exceptions\SyslogOpenFailed · Phalcon\Logger\Enum · Phalcon\Logger\Item

Method Summary

Properties

protectedint$facility = 0
protectedstring$name = ""
protectedbool$opened = false
protectedint$option = 0

Methods

Public · 3

__construct()

public function __construct(
    string $name,
    array $options = []
);

Syslog constructor.

close()

public function close(): bool;

Closes the logger

process()

public function process( Item $item ): void;

Processes the message i.e. writes it to the syslog

Protected · 1

openlog()

protected function openlog(
    string $ident,
    int $option,
    int $facility
): bool;

Open connection to system logger

@link https://php.net/manual/en/function.openlog.php

Logger\Enum

ClassSource on GitHub

Log Level Enum constants

  • Phalcon\Logger\Enum

Constants

intALERT = 2
intCRITICAL = 1
intCUSTOM = 8
intDEBUG = 7
intEMERGENCY = 0
intERROR = 3
intINFO = 6
intNOTICE = 5
intTRACE = 9
intWARNING = 4

Logger\Exception

ClassSource on GitHub

Phalcon\Logger\Exception

Exceptions thrown in Phalcon\Logger will use this class

Logger\Exceptions\AdapterNotFound

ClassSource on GitHub

This file is part of the Phalcon Framework.

(c) Phalcon Team <[email protected]>

For the full copyright and license information, please view the LICENSE.txt file that was distributed with this source code.

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( string $name );

Logger\Exceptions\DeserializationFailed

ClassSource on GitHub

This file is part of the Phalcon Framework.

(c) Phalcon Team <[email protected]>

For the full copyright and license information, please view the LICENSE.txt file that was distributed with this source code.

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Logger\Exceptions\NoAdaptersConfigured

ClassSource on GitHub

This file is part of the Phalcon Framework.

(c) Phalcon Team <[email protected]>

For the full copyright and license information, please view the LICENSE.txt file that was distributed with this source code.

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Logger\Exceptions\SerializationFailed

ClassSource on GitHub

This file is part of the Phalcon Framework.

(c) Phalcon Team <[email protected]>

For the full copyright and license information, please view the LICENSE.txt file that was distributed with this source code.

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Logger\Exceptions\TransactionAlreadyActive

ClassSource on GitHub

This file is part of the Phalcon Framework.

(c) Phalcon Team <[email protected]>

For the full copyright and license information, please view the LICENSE.txt file that was distributed with this source code.

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Logger\Exceptions\TransactionNotActive

ClassSource on GitHub

This file is part of the Phalcon Framework.

(c) Phalcon Team <[email protected]>

For the full copyright and license information, please view the LICENSE.txt file that was distributed with this source code.

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Logger\Formatter\AbstractFormatter

AbstractSource on GitHub

Class AbstractFormatter

Uses DateTimeImmutable · Phalcon\Logger\Item · Phalcon\Support\Helper\Str\AbstractStr

Method Summary

Properties

protectedstring$dateFormat = "c"Default date format
protectedstring$interpolatorLeft = "%"
protectedstring$interpolatorRight = "%"

Methods

Public · 2

getDateFormat()

public function getDateFormat(): string;

setDateFormat()

public function setDateFormat( string $format ): void;
Protected · 2

getFormattedDate()

protected function getFormattedDate( Item $item ): string;

Returns the date formatted for the logger.

getInterpolatedMessage()

protected function getInterpolatedMessage(
    Item $item,
    string $message
): string;

Logger\Formatter\FormatterInterface

InterfaceSource on GitHub

Phalcon\Logger\FormatterInterface

This interface must be implemented by formatters in Phalcon\Logger

  • Phalcon\Logger\Formatter\FormatterInterface

Uses Phalcon\Logger\Item

Method Summary

Methods

Public · 1

format()

public function format( Item $item ): string;

Applies a format to an item

Logger\Formatter\Json

ClassSource on GitHub

Formats messages using JSON encoding

Uses JsonException · Phalcon\Logger\Item

Method Summary

Methods

Public · 2

__construct()

public function __construct(
    string $dateFormat = "c",
    string $interpolatorLeft = "%",
    string $interpolatorRight = "%"
);

Json constructor.

format()

public function format( Item $item ): string;

Applies a format to a message before sent it to the internal log

Logger\Formatter\Line

ClassSource on GitHub

Class Line

Uses Exception · Phalcon\Logger\Item

Method Summary

Properties

protectedstring$formatFormat applied to each message

Methods

Public · 4

__construct()

public function __construct(
    string $format = "[%date%][%level%] %message%",
    string $dateFormat = "c",
    string $interpolatorLeft = "%",
    string $interpolatorRight = "%"
);

Line constructor.

format()

public function format( Item $item ): string;

Applies a format to a message before sent it to the internal log

getFormat()

public function getFormat(): string;

Return the format applied to each message

setFormat()

public function setFormat( string $format ): static;

Set the format applied to each message

Logger\Item

ClassSource on GitHub

Phalcon\Logger\Item

Represents each item in a logging transaction

@property array $context @property string $message @property int $level @property string $levelName @property DateTimeImmutable $dateTime

  • Phalcon\Logger\Item

Uses DateTimeImmutable

Method Summary

Properties

protectedarray$context = []
protectedDateTimeImmutable$dateTime
protectedint$level
protectedstring$levelName
protectedstring$message

Methods

Public · 6

__construct()

public function __construct(
    string $message,
    string $levelName,
    int $level,
    DateTimeImmutable $dateTime,
    array $context = []
);

Item constructor.

getContext()

public function getContext(): array;

getDateTime()

public function getDateTime(): DateTimeImmutable;

getLevel()

public function getLevel(): int;

getLevelName()

public function getLevelName(): string;

getMessage()

public function getMessage(): string;

Logger\Logger

ClassSource on GitHub

Phalcon Logger.

A logger, with various adapters and formatters. A formatter interface is available as well as an adapter one. Adapters can be created easily using the built-in AdapterFactory. A LoggerFactory is also available that allows developers to create new instances of the Logger or load them from config files (see Phalcon\Config\Config object).

Uses Exception · Phalcon\Logger\Exception

Method Summary

Methods

Public · 10

alert()

public function alert(
    string $message,
    array $context = []
): void;

Action must be taken immediately.

Example: Entire website down, database unavailable, etc. This should trigger the SMS alerts and wake you up.

critical()

public function critical(
    string $message,
    array $context = []
): void;

Critical conditions.

Example: Application component unavailable, unexpected exception.

debug()

public function debug(
    string $message,
    array $context = []
): void;

Detailed debug information.

emergency()

public function emergency(
    string $message,
    array $context = []
): void;

System is unusable.

error()

public function error(
    string $message,
    array $context = []
): void;

Runtime errors that do not require immediate action but should typically be logged and monitored.

info()

public function info(
    string $message,
    array $context = []
): void;

Interesting events.

Example: User logs in, SQL logs.

log()

public function log(
    mixed $level,
    string $message,
    array $context = []
): void;

Logs with an arbitrary level.

notice()

public function notice(
    string $message,
    array $context = []
): void;

Normal but significant events.

trace()

public function trace(
    string $message,
    array $context = []
): void;

Extra-verbose diagnostic output.

Use for high-frequency, fine-grained events such as raw socket frames, HTTP response bodies, or internal state transitions that are too noisy for DEBUG.

warning()

public function warning(
    string $message,
    array $context = []
): void;

Exceptional occurrences that are not errors.

Example: Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong.

Logger\LoggerFactory

ClassSource on GitHub

Factory creating logger objects

Uses DateTimeZone · Phalcon\Config\ConfigInterface · Phalcon\Factory\AbstractConfigFactory

Method Summary

Methods

Public · 3

__construct()

public function __construct( AdapterFactory $factory );

load()

public function load( mixed $config ): Logger;

Factory to create an instance from a Config object

newInstance()

public function newInstance(
    string $name,
    array $adapters = [],
    DateTimeZone $timezone = null
): Logger;

Returns a Logger object

Protected · 2

getArrVal()

protected function getArrVal(
    array $collection,
    mixed $index,
    mixed $defaultValue = null
): mixed;

@todo Remove this when we get traits

getExceptionClass()

protected function getExceptionClass(): string;

Logger\LoggerInterface

InterfaceSource on GitHub

Interface for Phalcon based logger objects.

  • Phalcon\Logger\LoggerInterface

Uses Phalcon\Logger\Adapter\AdapterInterface

Method Summary

Methods

Public · 14

alert()

public function alert(
    string $message,
    array $context = []
): void;

Action must be taken immediately.

Example: Entire website down, database unavailable, etc. This should trigger the SMS alerts and wake you up.

critical()

public function critical(
    string $message,
    array $context = []
): void;

Critical conditions.

Example: Application component unavailable, unexpected exception.

debug()

public function debug(
    string $message,
    array $context = []
): void;

Detailed debug information.

emergency()

public function emergency(
    string $message,
    array $context = []
): void;

System is unusable.

error()

public function error(
    string $message,
    array $context = []
): void;

Runtime errors that do not require immediate action but should typically be logged and monitored.

getAdapter()

public function getAdapter( string $name ): AdapterInterface;

Returns an adapter from the stack

getAdapters()

public function getAdapters(): array;

Returns the adapter stack array

getLogLevel()

public function getLogLevel(): int;

Returns the log level

getName()

public function getName(): string;

Returns the name of the logger

info()

public function info(
    string $message,
    array $context = []
): void;

Interesting events.

Example: User logs in, SQL logs.

log()

public function log(
    mixed $level,
    string $message,
    array $context = []
): void;

Logs with an arbitrary level.

notice()

public function notice(
    string $message,
    array $context = []
): void;

Normal but significant events.

trace()

public function trace(
    string $message,
    array $context = []
): void;

Extra-verbose diagnostic output.

warning()

public function warning(
    string $message,
    array $context = []
): void;

Exceptional occurrences that are not errors.

Example: Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong.

Type to search…

↑↓ navigate↵ selectEsc close