Logger
extends BaseConfig
in package
Class BaseConfig
Not intended to be used on its own, this class will attempt to automatically populate the child class' properties with values from the environment.
These can be set within the .env file.
Table of Contents
- $dateFormat : string
- -------------------------------------------------------------------------- Date Format for Logs --------------------------------------------------------------------------
- $handlers : array<string|int, mixed>
- -------------------------------------------------------------------------- Log Handlers --------------------------------------------------------------------------
- $registrars : array<string|int, mixed>
- An optional array of classes that will act as Registrars for rapidly setting config class properties.
- $threshold : int|array<string|int, mixed>
- -------------------------------------------------------------------------- Error Logging Threshold --------------------------------------------------------------------------
- $didDiscovery : bool
- Has module discovery happened yet?
- $moduleConfig : Modules
- The modules configuration.
- __construct() : mixed
- Will attempt to get environment variables with names that match the properties of the child class.
- getEnvValue() : mixed
- Retrieve an environment-specific configuration setting
- initEnvValue() : mixed
- Initialization an environment-specific configuration setting
- registerProperties() : mixed
- Provides external libraries a simple way to register one or more options into a config file.
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<string|int, mixed>
$handlers
= [
/*
* --------------------------------------------------------------------
* File Handler
* --------------------------------------------------------------------
*/
'CodeIgniter\Log\Handlers\FileHandler' => [
/*
* 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.
$registrars
An optional array of classes that will act as Registrars for rapidly setting config class properties.
public
static array<string|int, mixed>
$registrars
= []
$threshold
-------------------------------------------------------------------------- Error Logging Threshold --------------------------------------------------------------------------
public
int|array<string|int, mixed>
$threshold
= 4
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.
$didDiscovery
Has module discovery happened yet?
protected
static bool
$didDiscovery
= false
$moduleConfig
The modules configuration.
protected
static Modules
$moduleConfig
Methods
__construct()
Will attempt to get environment variables with names that match the properties of the child class.
public
__construct() : mixed
The "shortPrefix" is the lowercase-only config class name.
Return values
mixed —getEnvValue()
Retrieve an environment-specific configuration setting
protected
getEnvValue(string $property, string $prefix, string $shortPrefix) : mixed
Parameters
- $property : string
- $prefix : string
- $shortPrefix : string
Return values
mixed —initEnvValue()
Initialization an environment-specific configuration setting
protected
initEnvValue(mixed &$property, string $name, string $prefix, string $shortPrefix) : mixed
Parameters
- $property : mixed
- $name : string
- $prefix : string
- $shortPrefix : string
Return values
mixed —registerProperties()
Provides external libraries a simple way to register one or more options into a config file.
protected
registerProperties() : mixed