Logger
extends BaseConfig
in package
Table of Contents
Properties
- $dateFormat : string
- -------------------------------------------------------------------------- Date Format for Logs --------------------------------------------------------------------------
- $handlers : array<HandlerInterface>, array<string, int|array<int, string>|string>>
- -------------------------------------------------------------------------- Log Handlers --------------------------------------------------------------------------
- $threshold : int|array<int, int>
- -------------------------------------------------------------------------- Error Logging Threshold --------------------------------------------------------------------------
Properties
$dateFormat
-------------------------------------------------------------------------- Date Format for Logs --------------------------------------------------------------------------
public
string
$dateFormat
= 'Y-m-d H:i:s'
Each item that is logged has an associated date. You can use PHP date codes to set your own date formatting
$handlers
-------------------------------------------------------------------------- Log Handlers --------------------------------------------------------------------------
public
array<HandlerInterface>, array<string, int|array<int, string>|string>>
$handlers
= [
/*
* --------------------------------------------------------------------
* File Handler
* --------------------------------------------------------------------
*/
\CodeIgniter\Log\Handlers\FileHandler::class => [
// The log levels that this handler will handle.
'handles' => ['critical', 'alert', 'emergency', 'debug', 'error', 'info', 'notice', 'warning'],
/*
* The default filename extension for log files.
* An extension of 'php' allows for protecting the log files via basic
* scripting, when they are to be stored under a publicly accessible directory.
*
* NOTE: Leaving it blank will default to 'log'.
*/
'fileExtension' => '',
/*
* The file system permissions to be applied on newly created log files.
*
* IMPORTANT: This MUST be an integer (no quotes) and you MUST use octal
* integer notation (i.e. 0700, 0644, etc.)
*/
'filePermissions' => 0644,
/*
* Logging Directory Path
*
* By default, logs are written to WRITEPATH . 'logs/'
* Specify a different destination here, if desired.
*/
'path' => '',
],
]
The logging system supports multiple actions to be taken when something is logged. This is done by allowing for multiple Handlers, special classes designed to write the log to their chosen destinations, whether that is a file on the getServer, a cloud-based service, or even taking actions such as emailing the dev team.
Each handler is defined by the class name used for that handler, and it
MUST implement the CodeIgniter\Log\Handlers\HandlerInterface interface.
The value of each key is an array of configuration items that are sent
to the constructor of each handler. The only required configuration item
is the 'handles' element, which must be an array of integer log levels.
This is most easily handled by using the constants defined in the
Psr\Log\LogLevel class.
Handlers are executed in the order defined in this array, starting with the handler on top and continuing down.
$threshold
-------------------------------------------------------------------------- Error Logging Threshold --------------------------------------------------------------------------
public
int|array<int, int>
$threshold
= ENVIRONMENT === 'production' ? 4 : 9
You can enable error logging by setting a threshold over zero. The threshold determines what gets logged. Any values below or equal to the threshold will be logged.
Threshold options are:
- 0 = Disables logging, Error logging TURNED OFF
- 1 = Emergency Messages - System is unusable
- 2 = Alert Messages - Action Must Be Taken Immediately
- 3 = Critical Messages - Application component unavailable, unexpected exception.
- 4 = Runtime Errors - Don't need immediate action, but should be monitored.
- 5 = Warnings - Exceptional occurrences that are not errors.
- 6 = Notices - Normal but significant events.
- 7 = Info - Interesting events, like user logging in, etc.
- 8 = Debug - Detailed debug information.
- 9 = All Messages
You can also pass an array with threshold levels to show individual error types
array(1, 2, 3, 8) = Emergency, Alert, Critical, and Debug messages
For a live site you'll usually enable Critical or higher (3) to be logged otherwise your log files will fill up very fast.