<?php

namespace Config;

use CodeIgniter\Config\BaseConfig;

class Logger extends BaseConfig
{
    /*
    |--------------------------------------------------------------------------
    | Error Logging Threshold
    |--------------------------------------------------------------------------
    |
    | 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.
    |
    */
    public $threshold = 3;

    /*
    |--------------------------------------------------------------------------
    | Error Logging Directory Path
    |--------------------------------------------------------------------------
    |
    |
    |
    */
    public $path = '';

    /*
    |--------------------------------------------------------------------------
    | Date Format for Logs
    |--------------------------------------------------------------------------
    |
    | Each item that is logged has an associated date. You can use PHP date
    | codes to set your own date formatting
    |
    */
    public $dateFormat = 'Y-m-d H:i:s';

    /*
    |--------------------------------------------------------------------------
    | Log Handlers
    |--------------------------------------------------------------------------
    |
    | 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.
    |
    */
    public $handlers = [

        //--------------------------------------------------------------------
        // File Handler
        //--------------------------------------------------------------------

        'CodeIgniter\Log\Handlers\FileHandler' => [

            /*
             * The log levels that this handler will handle.
             */
            'handles'         => [
                'critical',
                'alert',
                'emergency',
                'debug',
                'error',
                'info',
                'notice',
                'warning',
            ],

            /*
             * Leave this BLANK unless you would like to set something other than the default
             * writeable/logs/ directory. Use a full getServer path with trailing slash.
             */
            'path'            => WRITEPATH.'logs/',

            /*
             * The default filename extension for log files. The default '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 'php'.
             */
            'fileExtension'   => 'php',

            /*
             * 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,
        ],

    /**
     * The ChromeLoggerHandler requires the use of the Chrome web browser
     * and the ChromeLogger extension. Uncomment this block to use it.
     */
        //      'CodeIgniter\Log\Handlers\ChromeLoggerHandler' => [
        //          /*
        //           * The log levels that this handler will handle.
        //           */
        //          'handles' => ['critical', 'alert', 'emergency', 'debug',
        //                        'error', 'info', 'notice', 'warning'],
        //      ]
    ];
}
