Sections

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 [email protected]

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 [email protected]

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 [email protected]

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