FileLog
extends BaseLog
in package
File Storage stream for Logging. Writes logs to different files based on the level of log it is.
Table of Contents
Properties
- $_config : array<string, mixed>
- Runtime config
- $_configInitialized : bool
- Whether the config property has already been configured with defaults
- $_defaultConfig : array<string, mixed>
- Default config for this class
- $_file : string|null
- The name of the file to save logs into.
- $_path : string
- Path to save log files on.
- $_size : int|null
- Max file size, used for log file rotation.
- $formatter : AbstractFormatter
Methods
- __construct() : mixed
- Sets protected properties based on config provided
- alert() : void
- Action must be taken immediately.
- configShallow() : $this
- Merge provided config with existing config. Unlike `config()` which does a recursive merge for nested keys, this method does a simple merge.
- critical() : void
- Critical conditions.
- debug() : void
- Detailed debug information.
- emergency() : void
- System is unusable.
- error() : void
- Runtime errors that do not require immediate action but should typically be logged and monitored.
- getConfig() : mixed
- Returns the config.
- getConfigOrFail() : mixed
- Returns the config for this specific key.
- info() : void
- Interesting events.
- levels() : array<string|int, string>
- Get the levels this logger is interested in.
- log() : void
- Implements writing to log files.
- notice() : void
- Normal but significant events.
- scopes() : array<string|int, string>|false
- Get the scopes this logger is interested in.
- setConfig() : $this
- Sets the config.
- warning() : void
- Exceptional occurrences that are not errors.
- _configDelete() : void
- Deletes a single config key.
- _configRead() : mixed
- Reads a config key.
- _configWrite() : void
- Writes a config key.
- _format() : string
- Formats the message to be logged.
- _getFilename() : string
- Get filename
- _rotateFile() : bool|null
- Rotate log file if size specified in config is reached.
- interpolate() : string
- Replaces placeholders in message string with context values.
Properties
$_config
Runtime config
protected
array<string, mixed>
$_config
= []
$_configInitialized
Whether the config property has already been configured with defaults
protected
bool
$_configInitialized
= false
$_defaultConfig
Default config for this class
protected
array<string, mixed>
$_defaultConfig
= [
'path' => null,
'file' => null,
'types' => null,
'levels' => [],
'scopes' => [],
'rotate' => 10,
'size' => 10485760,
// 10MB
'mask' => null,
'formatter' => ['className' => \Cake\Log\Formatter\DefaultFormatter::class],
]
-
levels
string or array, levels the engine is interested in -
scopes
string or array, scopes the engine is interested in -
file
Log file name -
path
The path to save logs on. -
size
Used to implement basic log file rotation. If log file size reaches specified size the existing file is renamed by appending timestamp to filename and new log file is created. Can be integer bytes value or human readable string values like '10MB', '100KB' etc. -
rotate
Log files are rotated specified times before being removed. If value is 0, old versions are removed rather then rotated. -
mask
A mask is applied when log files are created. Left empty no chmod is made. -
dateFormat
PHP date() format.
$_file
The name of the file to save logs into.
protected
string|null
$_file
$_path
Path to save log files on.
protected
string
$_path
$_size
Max file size, used for log file rotation.
protected
int|null
$_size
$formatter
protected
AbstractFormatter
$formatter
Methods
__construct()
Sets protected properties based on config provided
public
__construct([array<string, mixed> $config = [] ]) : mixed
Parameters
- $config : array<string, mixed> = []
-
Configuration array
alert()
Action must be taken immediately.
public
alert(string|Stringable $message[, array<string|int, mixed> $context = [] ]) : void
Example: Entire website down, database unavailable, etc. This should trigger the SMS alerts and wake you up.
Parameters
- $message : string|Stringable
- $context : array<string|int, mixed> = []
configShallow()
Merge provided config with existing config. Unlike `config()` which does a recursive merge for nested keys, this method does a simple merge.
public
configShallow(array<string, mixed>|string $key[, mixed|null $value = null ]) : $this
Setting a specific value:
$this->configShallow('key', $value);
Setting a nested value:
$this->configShallow('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Parameters
- $key : array<string, mixed>|string
-
The key to set, or a complete array of configs.
- $value : mixed|null = null
-
The value to set.
Return values
$thiscritical()
Critical conditions.
public
critical(string|Stringable $message[, array<string|int, mixed> $context = [] ]) : void
Example: Application component unavailable, unexpected exception.
Parameters
- $message : string|Stringable
- $context : array<string|int, mixed> = []
debug()
Detailed debug information.
public
debug(string|Stringable $message[, array<string|int, mixed> $context = [] ]) : void
Parameters
- $message : string|Stringable
- $context : array<string|int, mixed> = []
emergency()
System is unusable.
public
emergency(string|Stringable $message[, array<string|int, mixed> $context = [] ]) : void
Parameters
- $message : string|Stringable
- $context : array<string|int, mixed> = []
error()
Runtime errors that do not require immediate action but should typically be logged and monitored.
public
error(string|Stringable $message[, array<string|int, mixed> $context = [] ]) : void
Parameters
- $message : string|Stringable
- $context : array<string|int, mixed> = []
getConfig()
Returns the config.
public
getConfig([string|null $key = null ][, mixed $default = null ]) : mixed
Usage
Reading the whole config:
$this->getConfig();
Reading a specific value:
$this->getConfig('key');
Reading a nested value:
$this->getConfig('some.nested.key');
Reading with default value:
$this->getConfig('some-key', 'default-value');
Parameters
- $key : string|null = null
-
The key to get or null for the whole config.
- $default : mixed = null
-
The return value when the key does not exist.
Return values
mixed —Configuration data at the named key or null if the key does not exist.
getConfigOrFail()
Returns the config for this specific key.
public
getConfigOrFail(string $key) : mixed
The config value for this key must exist, it can never be null.
Parameters
- $key : string
-
The key to get.
Tags
Return values
mixed —Configuration data at the named key
info()
Interesting events.
public
info(string|Stringable $message[, array<string|int, mixed> $context = [] ]) : void
Example: User logs in, SQL logs.
Parameters
- $message : string|Stringable
- $context : array<string|int, mixed> = []
levels()
Get the levels this logger is interested in.
public
levels() : array<string|int, string>
Return values
array<string|int, string>log()
Implements writing to log files.
public
log(mixed $level, string $message[, array<string|int, mixed> $context = [] ]) : void
Parameters
- $level : mixed
-
The severity level of the message being written.
- $message : string
-
The message you want to log.
- $context : array<string|int, mixed> = []
-
Additional information about the logged message
Tags
notice()
Normal but significant events.
public
notice(string|Stringable $message[, array<string|int, mixed> $context = [] ]) : void
Parameters
- $message : string|Stringable
- $context : array<string|int, mixed> = []
scopes()
Get the scopes this logger is interested in.
public
scopes() : array<string|int, string>|false
Return values
array<string|int, string>|falsesetConfig()
Sets the config.
public
setConfig(array<string, mixed>|string $key[, mixed|null $value = null ][, bool $merge = true ]) : $this
Usage
Setting a specific value:
$this->setConfig('key', $value);
Setting a nested value:
$this->setConfig('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Parameters
- $key : array<string, mixed>|string
-
The key to set, or a complete array of configs.
- $value : mixed|null = null
-
The value to set.
- $merge : bool = true
-
Whether to recursively merge or overwrite existing config, defaults to true.
Tags
Return values
$thiswarning()
Exceptional occurrences that are not errors.
public
warning(string|Stringable $message[, array<string|int, mixed> $context = [] ]) : void
Example: Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong.
Parameters
- $message : string|Stringable
- $context : array<string|int, mixed> = []
_configDelete()
Deletes a single config key.
protected
_configDelete(string $key) : void
Parameters
- $key : string
-
Key to delete.
Tags
_configRead()
Reads a config key.
protected
_configRead(string|null $key) : mixed
Parameters
- $key : string|null
-
Key to read.
_configWrite()
Writes a config key.
protected
_configWrite(array<string, mixed>|string $key, mixed $value[, string|bool $merge = false ]) : void
Parameters
- $key : array<string, mixed>|string
-
Key to write to.
- $value : mixed
-
Value to write.
- $merge : string|bool = false
-
True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.
Tags
_format()
Formats the message to be logged.
protected
_format(string $message[, array<string|int, mixed> $context = [] ]) : string
Call interpolate()
directly from your log engine and format the message in a formatter.
The context can optionally be used by log engines to interpolate variables or add additional info to the logged message.
Parameters
- $message : string
-
The message to be formatted.
- $context : array<string|int, mixed> = []
-
Additional logging information for the message.
Return values
string_getFilename()
Get filename
protected
_getFilename(string $level) : string
Parameters
- $level : string
-
The level of log.
Return values
string —File name
_rotateFile()
Rotate log file if size specified in config is reached.
protected
_rotateFile(string $filename) : bool|null
Also if rotate
count is reached oldest file is removed.
Parameters
- $filename : string
-
Log file name
Return values
bool|null —True if rotated successfully or false in case of error. Null if file doesn't need to be rotated.
interpolate()
Replaces placeholders in message string with context values.
protected
interpolate(string $message[, array<string|int, mixed> $context = [] ]) : string
Parameters
- $message : string
-
Formatted string
- $context : array<string|int, mixed> = []
-
Context for placeholder values.