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