Logging in Laravel is a powerful feature that allows you to record and analyze information about your application’s behavior. Here are the steps to use logging in Laravel:
Configure Logging
By default, Laravel uses the Monolog library for logging. You can configure the logging options in the config/logging.php
file. This file contains an array of logging channels, each with its own configuration settings. The default configuration includes channels like stack
, single
, and daily
. You can modify these channels or add your own as per your requirements.
Use the Log Facade
The Log
facade provides a simple interface for interacting with the logging system. To use the Log facade, make sure to import it at the top of your file:
Log Messages
You can log messages at various levels such as debug
, info
, warning
, error
, and critical
. To log a message, use the respective level method on the Log facade:
Adding Contextual Information
You can add contextual information to your log messages using an array as the second parameter. This allows you to include additional data related to the log entry:
Log::info(‘User login failed.’, [‘username’ => ‘john_doe’, ‘ip’ => ‘192.168.1.100’]);Logging Exceptions
Laravel provides a convenient method to log exceptions along with their stack traces:
try { // Code that may throw an exception } catch (Exception $e) { Log::error(‘An exception occurred.’, [‘exception’ => $e]); }Log Files and Channels
By default, Laravel logs to the storage/logs/laravel.log
file. However, you can configure different log files and channels in the config/logging.php
file. For example, you can use the daily
channel to create separate log files for each day.
Retrieving Log Entries
Laravel provides an artisan
command to view log entries. You can use the php artisan log:tail
command to stream log entries in real-time. Additionally, log files are stored in the storage/logs
directory, and you can view them directly for inspection.