Logger\Logger
-
Namespace
Phalcon\Logger
-
Uses
Psr\Log\LoggerInterfacePhalcon\Logger\Adapter\AdapterInterfacePhalcon\Logger\ItemPhalcon\Logger\Exception
-
Extends
-
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(): intpublic 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
Logger\Adapter\AbstractAdapter 
-
Namespace
Phalcon\Logger\Adapter
-
Uses
Phalcon\Logger\ExceptionPhalcon\Logger\Formatter\FormatterInterfacePhalcon\Logger\Formatter\LinePhalcon\Logger\Item
-
Extends
-
Implements
AdapterInterface
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
Logger\Adapter\AdapterInterface 
-
Namespace
Phalcon\Logger\Adapter
-
Uses
Phalcon\Logger\Formatter\FormatterInterfacePhalcon\Logger\Item
-
Extends
-
Implements
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
Logger\Adapter\Noop
-
Namespace
Phalcon\Logger\Adapter
-
Uses
Phalcon\Logger\Item
-
Extends
AbstractAdapter -
Implements
$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
Logger\Adapter\Stream
-
Namespace
Phalcon\Logger\Adapter
-
Uses
Phalcon\Logger\AdapterPhalcon\Logger\ExceptionPhalcon\Logger\Formatter\FormatterInterfacePhalcon\Logger\ItemUnexpectedValueException
-
Extends
AbstractAdapter -
Implements
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(): stringpublic function process( Item $item ): void;Processes the message i.e. writes it to the file
Logger\Adapter\Syslog
-
Namespace
Phalcon\Logger\Adapter
-
Uses
LogicExceptionPhalcon\Helper\ArrPhalcon\LoggerPhalcon\Logger\AdapterPhalcon\Logger\ExceptionPhalcon\Logger\Formatter\FormatterInterfacePhalcon\Logger\Item
-
Extends
AbstractAdapter -
Implements
Class 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
Logger\AdapterFactory
-
Namespace
Phalcon\Logger
-
Uses
Phalcon\Factory\AbstractFactoryPhalcon\Logger\Adapter\AdapterInterfacePhalcon\Logger\Exception
-
Extends
AbstractFactory -
Implements
Factory used to create adapters used for Logging
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;Logger\Exception
-
Namespace
Phalcon\Logger
-
Uses
-
Extends
\Exception -
Implements
Phalcon\Logger\Exception
Exceptions thrown in Phalcon\Logger will use this class
Logger\Formatter\AbstractFormatter 
-
Namespace
Phalcon\Logger\Formatter
-
Uses
DateTimeImmutableDateTimeZonePhalcon\LoggerPhalcon\Logger\Item
-
Extends
-
Implements
FormatterInterface
Class AbstractFormatter
Properties
/**
* Default date format
*
* @var string
*/
protected $dateFormat;Methods
public function getDateFormat(): stringpublic 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
Logger\Formatter\FormatterInterface 
-
Namespace
Phalcon\Logger\Formatter
-
Uses
Phalcon\Logger\Item
-
Extends
-
Implements
This interface must be implemented by formatters in Phalcon\Logger
Methods
public function format( Item $item ): string | array;Applies a format to an item
Logger\Formatter\Json
-
Namespace
Phalcon\Logger\Formatter
-
Uses
Phalcon\Helper\JsonPhalcon\Logger\Item
-
Extends
AbstractFormatter -
Implements
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
Logger\Formatter\Line
-
Namespace
Phalcon\Logger\Formatter
-
Uses
DateTimePhalcon\Logger\Item
-
Extends
AbstractFormatter -
Implements
Formats messages using a 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(): stringpublic function setFormat( string $format )Logger\Item
-
Namespace
Phalcon\Logger
-
Uses
-
Extends
-
Implements
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(): mixedpublic function getMessage(): stringpublic function getName(): stringpublic function getTime(): integerpublic function getType(): integerLogger\LoggerFactory
-
Namespace
Phalcon\Logger
-
Uses
Phalcon\ConfigPhalcon\Config\ConfigInterfacePhalcon\Helper\ArrPhalcon\Logger
-
Extends
-
Implements
Factory creating logger objects
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