Documentation

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

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
Tags
throws
ReflectionException
Return values
mixed

Search results