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 DateTimeZone $timezone

Uses DateTimeZone · Exception · Phalcon\Logger\Adapter\AdapterInterface · Phalcon\Logger\Exceptions\AdapterNotFound · Phalcon\Logger\Exceptions\NoAdaptersConfigured · Phalcon\Time\Clock\ClockInterface · Phalcon\Time\Clock\SystemClock

Method Summary

Constants

intALERT = 2
intCRITICAL = 1
intCUSTOM = 8Default threshold and fallback sink. It sits between DEBUG (7) and TRACE (9) in the ordering, so the default log level excludes TRACE. It is also the fallback for unknown message levels and invalid setLogLevel() values.
intDEBUG = 7
intEMERGENCY = 0
intERROR = 3
intINFO = 6
intNOTICE = 5
intTRACE = 9
intWARNING = 4

Properties

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

Methods

Public · 13

__construct()

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

Constructor.

addAdapter()

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

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

begin()

public function begin(): static;

Starts a transaction on every (non-excluded) adapter in the stack.

commit()

public function commit(): static;

Commits the transaction on every (non-excluded) adapter in the stack.

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

rollback()

public function rollback(): static;

Rolls back the transaction on every (non-excluded) adapter in 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 minimum log level for the logger.

An unknown level is not rejected: it is stored as CUSTOM, which sits between DEBUG and TRACE in the ordering, so the threshold becomes “everything except TRACE”.

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 Exception · Phalcon\Factory\AbstractFactory · Phalcon\Logger\Adapter\AdapterInterface · Phalcon\Logger\Adapter\Noop · Phalcon\Logger\Adapter\Stream · Phalcon\Logger\Adapter\Syslog · Throwable

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

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 · 14

__destruct()

public function __destruct();

Destructor cleanup

Throwing from a destructor is fatal during script shutdown, so an open transaction is auto-committed here (flushing the queued items) rather than throwing.

__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

close()

abstract public function close(): bool;

Closes the logger

commit()

public function commit(): AdapterInterface;

Commits the internal transaction

getFormatter()

public function getFormatter(): FormatterInterface;

Return the formatter used

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

Uses Phalcon\Contracts\Logger\Adapter\Adapter

Logger\Adapter\Exceptions\FileOpenFailed

ClassSource on GitHub

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

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

Logger\Adapter\Exceptions\InvalidStreamMode

ClassSource on GitHub

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Logger\Adapter\Exceptions\SyslogOpenFailed

ClassSource on GitHub

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\Exception · Phalcon\Logger\Item · Phalcon\Traits\Php\FileTrait

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

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

Logger\Enum

ClassSource on GitHub

Log Level Enum constants

  • Phalcon\Logger\Enum

Constants

intALERT = 2
intCRITICAL = 1
intCUSTOM = 8Default threshold and fallback sink. It sits between DEBUG (7) and TRACE (9) in the ordering, so the default log level excludes TRACE. It is also the fallback for unknown message levels and invalid setLogLevel() values.
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

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( string $name );

Logger\Exceptions\DeserializationFailed

ClassSource on GitHub

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Logger\Exceptions\NoAdaptersConfigured

ClassSource on GitHub

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Logger\Exceptions\SerializationFailed

ClassSource on GitHub

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Logger\Exceptions\TransactionAlreadyActive

ClassSource on GitHub

Uses Phalcon\Logger\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Logger\Exceptions\TransactionNotActive

ClassSource on GitHub

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\Traits\Support\Helper\Str\InterpolateTrait

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;

Returns the interpolated message, replacing context placeholders.

Logger\Formatter\FormatterInterface

InterfaceSource on GitHub

Phalcon\Logger\FormatterInterface

This interface must be implemented by formatters in Phalcon\Logger

Uses Phalcon\Contracts\Logger\Formatter\Formatter

Logger\Formatter\Json

ClassSource on GitHub

Formats messages using JSON encoding

Uses JsonException · Phalcon\Logger\Item · Phalcon\Traits\Support\Helper\Json\EncodeTrait

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

  • 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).

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.

An unknown level (a typo or an unmapped value) is not rejected; it maps to the CUSTOM level and is logged, rather than raising an exception.

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 · Exception · Phalcon\Config\ConfigInterface · Phalcon\Factory\AbstractConfigFactory · Phalcon\Traits\Support\Helper\Arr\GetTrait · Throwable

Method Summary

Methods

Public · 3

__construct()

public function __construct( AdapterFactory $factory );

Constructor

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|null $timezone = null
): Logger;

Returns a Logger object

Protected · 1

getExceptionClass()

protected function getExceptionClass(): string;

Logger\LoggerInterface

InterfaceSource on GitHub

Interface for Phalcon based logger objects.

Uses Phalcon\Contracts\Logger\Logger

Type to search…

↑↓ navigate↵ selectEsc close