# How to log data in JSON in Laravel

Logging data in JSON format in Laravel can be done using the built-in `Monolog` logging library that Laravel uses under the hood.

Here are the steps to configure Laravel to log data in JSON format:

1. Open the `config/logging.php` file in your Laravel project.
2. In the `channels` array, create a new channel for logging in JSON format:

```php
'json' => [
    'driver' => 'daily',
    'path' => storage_path('logs/laravel.json'),
    'level' => 'debug',
    'days' => 14,
],
```

This configuration sets up a new channel named `json` that logs data in a daily rotating file located in the `storage/logs` directory with a name `laravel.json`. The logging level is set to `debug` and logs will be retained for 14 days.

1. Update the `stack` channel to include the `json` channel:

```php
'stack' => [
    'driver' => 'stack',
    'channels' => ['single', 'json'],
],
```

This will ensure that logs are written to both the default `single` channel (which logs in plain text) and the new `json` channel.

1. Use the `Log` facade to log data in JSON format:

```php
Log::channel('json')->debug(json_encode(['key' => 'value']));
```

This will log a JSON object in the `json` channel.

With these steps, Laravel will now log data in JSON format in addition to the default plain text format.

[ad-logs]