Skip to content

Class Phalcon\Logger

Source on GitHub

| Namespace | Phalcon | | Uses | Psr\Log\LoggerInterface, Phalcon\Logger\Adapter\AdapterInterface, Phalcon\Logger\Item, Phalcon\Logger\Exception | | Implements | LoggerInterface |

Phalcon\Logger

This component offers logging capabilities for your application. The component accepts multiple adapters, working also as a multiple logger. Phalcon\Logger implements PSR-3.

use Phalcon\Logger;
use Phalcon\Logger\Adapter\Stream;

$adapter1 = new Stream('/logs/first-log.log');
$adapter2 = new Stream('/remote/second-log.log');
$adapter3 = new Stream('/manager/third-log.log');

$logger = new Logger(
        'messages',
        [
            'local'   => $adapter1,
            'remote'  => $adapter2,
            'manager' => $adapter3,
        ]
    );

// Log to all adapters
$logger->error('Something went wrong');

// Log to specific adapters
$logger
        ->excludeAdapters(['manager'])
        ->info('This does not go to the "manager" logger);

Constants

const ALERT = 2;
const CRITICAL = 1;
const CUSTOM = 8;
const DEBUG = 7;
const EMERGENCY = 0;
const ERROR = 3;
const INFO = 6;
const NOTICE = 5;
const WARNING = 4;

Properties

/**
 * The adapter stack
 *
 * @var AdapterInterface[]
 */
protected adapters;

/**
 * Minimum log level for the logger
 *
 * @var int
 */
protected logLevel = 8;

/**
 * @var string
 */
protected name = ;

/**
 * The excluded adapters for this log process
 *
 * @var AdapterInterface[]
 */
protected excluded;

Methods

public function __construct( string $name, array $adapters = [] );
Constructor.

public function addAdapter( string $name, AdapterInterface $adapter ): Logger;
Add an adapter to the stack. For processing we use FIFO

public function alert( mixed $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.

public function critical( mixed $message, array $context = [] ): void;
Critical conditions.

Example: Application component unavailable, unexpected exception.

public function debug( mixed $message, array $context = [] ): void;
Detailed debug information.

public function emergency( mixed $message, array $context = [] ): void;
System is unusable.

public function error( mixed $message, array $context = [] ): void;
Runtime errors that do not require immediate action but should typically be logged and monitored.

public function excludeAdapters( array $adapters = [] ): Logger;
Exclude certain adapters.

public function getAdapter( string $name ): AdapterInterface;
Returns an adapter from the stack

public function getAdapters(): array;
Returns the adapter stack array

public function getLogLevel(): int

public function getName(): string;
Returns the name of the logger

public function info( mixed $message, array $context = [] ): void;
Interesting events.

Example: User logs in, SQL logs.

public function log( mixed $level, mixed $message, array $context = [] ): void;
Logs with an arbitrary level.

public function notice( mixed $message, array $context = [] ): void;
Normal but significant events.

public function removeAdapter( string $name ): Logger;
Removes an adapter from the stack

public function setAdapters( array $adapters ): Logger;
Sets the adapters stack overriding what is already there

public function setLogLevel( int $level ): Logger;
Sets the log level above which we can log

public function warning( mixed $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.

protected function addMessage( int $level, string $message, array $context = [] ): bool;
Adds a message to each handler for processing

protected function getLevels(): array;
Returns an array of log levels with integer to string conversion

Abstract Class Phalcon\Logger\Adapter\AbstractAdapter

Source on GitHub

| Namespace | Phalcon\Logger\Adapter | | Uses | Phalcon\Logger, Phalcon\Logger\Exception, Phalcon\Logger\Formatter\FormatterInterface, Phalcon\Logger\Item | | Implements | AdapterInterface |

This file is part of the Phalcon Framework.

(c) Phalcon Team team@phalcon.io

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

Properties

/**
 * Name of the default formatter class
 *
 * @var string
 */
protected defaultFormatter = Line;

/**
 * Formatter
 *
 * @var FormatterInterface
 */
protected formatter;

/**
 * Tells if there is an active transaction or not
 *
 * @var bool
 */
protected inTransaction = false;

/**
 * Array with messages queued in the transaction
 *
 * @var array
 */
protected queue;

Methods

public function __destruct();
Destructor cleanup

public function add( Item $item ): AdapterInterface;
Adds a message to the queue

public function begin(): AdapterInterface;
Starts a transaction

public function commit(): AdapterInterface;
Commits the internal transaction

public function getFormatter(): FormatterInterface;

public function inTransaction(): bool;
Returns the whether the logger is currently in an active transaction or not

abstract public function process( Item $item ): void;
Processes the message in the adapter

public function rollback(): AdapterInterface;
Rollbacks the internal transaction

public function setFormatter( FormatterInterface $formatter ): AdapterInterface;
Sets the message formatter

Interface Phalcon\Logger\Adapter\AdapterInterface

Source on GitHub

| Namespace | Phalcon\Logger\Adapter | | Uses | Phalcon\Logger\Formatter\FormatterInterface, Phalcon\Logger\Item |

Phalcon\Logger\AdapterInterface

Interface for Phalcon\Logger adapters

Methods

public function add( Item $item ): AdapterInterface;
Adds a message in the queue

public function begin(): AdapterInterface;
Starts a transaction

public function close(): bool;
Closes the logger

public function commit(): AdapterInterface;
Commits the internal transaction

public function getFormatter(): FormatterInterface;
Returns the internal formatter

public function inTransaction(): bool;
Returns the whether the logger is currently in an active transaction or not

public function process( Item $item ): void;
Processes the message in the adapter

public function rollback(): AdapterInterface;
Rollbacks the internal transaction

public function setFormatter( FormatterInterface $formatter ): AdapterInterface;
Sets the message formatter

Class Phalcon\Logger\Adapter\Noop

Source on GitHub

| Namespace | Phalcon\Logger\Adapter | | Uses | Phalcon\Logger\Item | | Extends | AbstractAdapter |

Phalcon\Logger\Adapter\Noop

Adapter to store logs in plain text files

$logger = new \Phalcon\Logger\Adapter\Noop();

$logger->log(\Phalcon\Logger::ERROR, "This is an error");
$logger->error("This is another error");

$logger->close();

Methods

public function close(): bool;
Closes the stream

public function process( Item $item ): void;
Processes the message i.e. writes it to the file

Class Phalcon\Logger\Adapter\Stream

Source on GitHub

| Namespace | Phalcon\Logger\Adapter | | Uses | Phalcon\Logger\Adapter, Phalcon\Logger\Exception, Phalcon\Logger\Formatter\FormatterInterface, Phalcon\Logger\Item, UnexpectedValueException | | Extends | AbstractAdapter |

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::ERROR, "This is an error");
$logger->error("This is another error");

$logger->close();

Properties

/**
 * Stream handler resource
 *
 * @var resource|null
 */
protected handler;

/**
 * The file open mode. Defaults to "ab"
 *
 * @var string
 */
protected mode = ab;

/**
 * Stream name
 *
 * @var string
 */
protected name;

/**
 * Path options
 *
 * @var array
 */
protected options;

Methods

public function __construct( string $name, array $options = [] );
Constructor. Accepts the name and some options

public function close(): bool;
Closes the stream

public function getName(): string

public function process( Item $item ): void;
Processes the message i.e. writes it to the file

Class Phalcon\Logger\Adapter\Syslog

Source on GitHub

| Namespace | Phalcon\Logger\Adapter | | Uses | LogicException, Phalcon\Helper\Arr, Phalcon\Logger, Phalcon\Logger\Adapter, Phalcon\Logger\Exception, Phalcon\Logger\Formatter\FormatterInterface, Phalcon\Logger\Item | | Extends | AbstractAdapter |

Phalcon\Logger\Adapter\Syslog

Sends logs to the system logger

use Phalcon\Logger;
use Phalcon\Logger\Adapter\Syslog;

// LOG_USER is the only valid log type under Windows operating systems
$logger = new Syslog(
    "ident",
    [
        "option"   => LOG_CONS | LOG_NDELAY | LOG_PID,
        "facility" => LOG_USER,
    ]
);

$logger->log("This is a message");
$logger->log(Logger::ERROR, "This is an error");
$logger->error("This is another error");

Properties

/**
 * Name of the default formatter class
 *
 * @var string
 */
protected defaultFormatter = Line;

/**
 * @var int
 */
protected facility = 0;

/**
 * @var string
 */
protected name = ;

/**
 * @var bool
 */
protected opened = false;

/**
 * @var int
 */
protected option = 0;

Methods

public function __construct( string $name, array $options = [] );
Phalcon\Logger\Adapter\Syslog constructor

public function close(): bool;
Closes the logger

public function process( Item $item ): void;
Processes the message i.e. writes it to the syslog

Class Phalcon\Logger\AdapterFactory

Source on GitHub

| Namespace | Phalcon\Logger | | Uses | Phalcon\Factory\AbstractFactory, Phalcon\Logger\Adapter\AdapterInterface | | Extends | AbstractFactory |

This file is part of the Phalcon Framework.

(c) Phalcon Team team@phalcon.io

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

Methods

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

public function newInstance( string $name, string $fileName, array $options = [] ): AdapterInterface;
Create a new instance of the adapter

protected function getAdapters(): array;

Class Phalcon\Logger\Exception

Source on GitHub

| Namespace | Phalcon\Logger | | Extends | \Phalcon\Exception |

Phalcon\Logger\Exception

Exceptions thrown in Phalcon\Logger will use this class

Abstract Class Phalcon\Logger\Formatter\AbstractFormatter

Source on GitHub

| Namespace | Phalcon\Logger\Formatter | | Uses | DateTimeImmutable, DateTimeZone, Phalcon\Logger, Phalcon\Logger\Item | | Implements | FormatterInterface |

This file is part of the Phalcon Framework.

(c) Phalcon Team team@phalcon.io

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

Properties

/**
 * Default date format
 *
 * @var string
 */
protected dateFormat;

Methods

public function getDateFormat(): string

public function interpolate( string $message, mixed $context = null );
Interpolates context values into the message placeholders

@see https://www.php-fig.org/psr/psr-3/ Section 1.2 Message

public function setDateFormat( string $dateFormat )

protected function getFormattedDate(): string;
Returns the date formatted for the logger. @todo Not using the set time from the Item since we have interface misalignment which will break semver This will change in the future

Interface Phalcon\Logger\Formatter\FormatterInterface

Source on GitHub

| Namespace | Phalcon\Logger\Formatter | | Uses | Phalcon\Logger\Item |

Phalcon\Logger\FormatterInterface

This interface must be implemented by formatters in Phalcon\Logger

Methods

public function format( Item $item ): string | array;
Applies a format to an item

Class Phalcon\Logger\Formatter\Json

Source on GitHub

| Namespace | Phalcon\Logger\Formatter | | Uses | Phalcon\Helper\Json, Phalcon\Logger\Item | | Extends | AbstractFormatter |

Phalcon\Logger\Formatter\Json

Formats messages using JSON encoding

Methods

public function __construct( string $dateFormat = string );
Phalcon\Logger\Formatter\Json construct

public function format( Item $item ): string;
Applies a format to a message before sent it to the internal log

Class Phalcon\Logger\Formatter\Line

Source on GitHub

| Namespace | Phalcon\Logger\Formatter | | Uses | DateTime, Phalcon\Logger\Item | | Extends | AbstractFormatter |

Phalcon\Logger\Formatter\Line

Formats messages using an one-line string

Properties

/**
 * Format applied to each message
 *
 * @var string
 */
protected format;

Methods

public function __construct( string $format = string, string $dateFormat = string );
Phalcon\Logger\Formatter\Line construct

public function format( Item $item ): string;
Applies a format to a message before sent it to the internal log

public function getFormat(): string
public function setFormat( string $format )

Class Phalcon\Logger\Item

Source on GitHub

| Namespace | Phalcon\Logger |

Phalcon\Logger\Item

Represents each item in a logging transaction

Properties

/**
 * Log Context
 *      
 * @var mixed
 */
protected context;

/**
 * Log message
 *
 * @var string
 */
protected message;

/**
 * Log message
 *
 * @var string
 */
protected name;

/**
 * Log timestamp
 *
 * @var integer
 */
protected time;

/**
 * Log type
 *
 * @var integer
 */
protected type;

Methods

public function __construct( string $message, string $name, int $type, int $time = int, mixed $context = [] );
Phalcon\Logger\Item constructor @todo Remove the time or change the signature to an array

public function getContext(): mixed
public function getMessage(): string
public function getName(): string
public function getTime(): integer
public function getType(): integer

Class Phalcon\Logger\LoggerFactory

Source on GitHub

| Namespace | Phalcon\Logger | | Uses | Phalcon\Config, Phalcon\Config\ConfigInterface, Phalcon\Helper\Arr, Phalcon\Logger |

Phalcon\Logger\LoggerFactory

Logger factory

Properties

/**
 * @var AdapterFactory
 */
private adapterFactory;

Methods

public function __construct( AdapterFactory $factory );

public function load( mixed $config ): Logger;
Factory to create an instance from a Config object

public function newInstance( string $name, array $adapters = [] ): Logger;
Returns a Logger object