# Configuration

Out of the box, you don't have to configure Logit, but if you want to change any of the default settings, you can do so by adding the following array key to your `config.php` file. In this example, you are changing the values of 2 settings.

```php
$config['logit'] = [
    'rotate' => 30,
    'detailedLogs' => true,
];
```

&#x20;Logit will perform an `array_replace()` with it's default options (seen below) with what is in your `config.php` file, thus if you only need to add to your `config.php` file what you want to change.

For example, if you choose to set `'Comment' => true`, which means Logit will log every time a comment is created, updated, or deleted. Then you will add this to your config.php file.

```php
$config['logit'] = [
    'log' => [
        'models' => [
            'Comment' => true
        ],
    ],
];
```

Default Logit settings.

```php
$config['logit'] = [
    'detailedLogs' => false, // Append full JSON object of saved data with the log?
    'encodeDetailedLogs' => false,
    'frontendLogs' => true, // Log updates in front-end requests? E.g. Channel:Form
    'log' => [
        'models' => [
            'Category' => true,
            'CategoryField' => true,
            'CategoryGroup' => true,
            'Channel' => true,
            'ChannelField' => true,
            'ChannelEntry' => true,
            'ChannelFormSettings' => true,
            'ChannelLayout' => true,
            'Comment' => false, // Disabled by default, could lead to a lot of logs on a busy site.
            'GlobalVariable' => true,
            'Site' => true,
            'Snippet' => true,
            'SpecialtyTemplate' => true,
            'Status' => true,
            'Template' => true,
            'TemplateGroup' => true,
            'TemplateRoute' => true,
            'Member' => true,
            'Role' => true,
            'RoleGroup' => true,
            'RoleSetting' => true,
            'Permission' => true,
        ],
        'postActions' => [
            'cp\/(addons\/settings)\/(\S+)' => true,
            'cp\/(addons)' => true,
            'cp\/(settings)\/(\S+)' => true,
        ],
        'getActions' => [
            'cp\/(addons\/install)\/(\S+)' => true,
            'cp\/(addons\/remove)\/(\S+)' => true,
        ],
    ],
    'rotate' => 0, // How often should logs be rotated (in days)?
    /*
    The default storage locations for log backups is in your site's user/cache/logit folder, however, it is
    recommended to use an external storage service such as Amazon S3 to ensure the log files are not accidentally
    deleted. Alternatively, you can create a folder outside of your user/cache folder to circumvent EE's cache clearing,
    which will delete the contents in the user/cache folder.
     */
    'storage' => [
        'local' => [
            'path' => '{PATH_CACHE}logit',
        ],

        /*
        BoldMinded will not assist in creating or troubleshooting S3 access. You will need to configure your account,
        bucket, user, group, and IAM roles and permissions. If you do not configure permissions correctly, Logit will
        throw an exception error... this is how you will know something is incorrect with the values below, or with
        your user, group, or IAM settings in AWS.

        's3' => [
            'key' => '',
            'secret' => '',
            'bucket' => '',
            'region' => 'us-east-2' // aka, "US East (Ohio)" https://docs.aws.amazon.com/general/latest/gr/rande.html
            'path' => '',
        ]
        */
    ],
];
```

### Logging to PHP's error\_log or custom directory

You can optionally send all logs to your server's PHP `error_log` *by setting the* `'path'` option to *'*`error_log'`. Your server and PHP must be configured with a valid log path for this to work. Generally this is setup by default on each server.

```php
$config['logit'] = [
    'storage' => [
        'local' => [
            'path' => 'error_log'
        ]
    ]
];
```

You can optionally write the log files to a custom directory that is not the PHP error\_log or your EE cache directory. Remember, all logging goes to the database by default, and then rotated to the `ee/system/user/cache/logit` directory. You can skip the database logging and log directly to a custom directory.

```php
$config['logit'] = [
    'storage' => [
        'local' => [
            'path' => '/var/log/my-custom-logit-directory'
        ]
    ]
];
```

### Remote Backups

By default Logit saves all logs, when rotation is enabled, in your `user/cache` folder, but it is recommended to save logs to a different location. Logit only uses the default `user/cache` folder because it should be writable as part of ExpressionEngine's default configuration. It is common for 3rd party add-ons to flush the cache, so you want to avoid having your logs accidently deleted by another add-on. *For this reason it is highly suggested to choose another local directory path, or use an Amazon S3 bucket*. You can manually relocate your log rotation files as needed, such as above the web root. If your public directory is `/var/www/html/public`, you may want to save logs to `/var/www/html/logs`. To do that, set the `storage['local']['path']` value in your `config.php` file. The same process may be taken if you decide to add an S3 bucket.&#x20;

As noted in the default configuration array, if `storage['s3']` is provided, then Logit will save all logs to the defined bucket. *BoldMinded does not provide support in creating and configuring permissions to S3*. If you have issues connecting to the bucket, you will receive an error message and will need to self diagnose and fix the issue.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.boldminded.com/logit/docs/configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
