PHP Error Handling error_log() Function



The PHP Error Handling error_log() function is used to handle errors and save them to a specified file or directory. Instead of displaying errors on the screen, this function lets you securely preserve them for further debugging.

It is important for website security by hiding sensitive error notifications from visitors. Developers may track bugs without disrupting the user experience. This technique improves and organizes mistake management and rectification.

Syntax

Below is the syntax of the PHP Error Handling error_log() function −

bool error_log(
   string $msg,
   int $msg_type,
   ?string $destination,
   ?string $additional_headers
)

Parameters

Here are the parameters of the error_log() function −

Sr.No Parameter & Description
1

$msg

It is the error message that should be logged.

2

$msg_type

It says where the error should go. The possible message types are as follows −

  • 0 − Default. The error is sent to the servers logging system or a file, depending on how the error_log configuration is set in the php.ini file

  • 1 − The error is sent by email to the address in the destination parameter. This message type is the only one that uses the headers parameter

  • 2 − The error is sent through the PHP debugging connection. This option is only available in PHP 3

  • 3 − The error is added to the file destination string

3

$destination

IT is the destination. Its meaning depends on the message_type parameter as described above.

4

$additional_headers

It is the extra headers. It's used when the message_type parameter is set to 1. This message type uses the same internal function as mail() does.

Return Value

The error_log() function returns TRUE on success. And FALSE on failure.

PHP Version

First introduced in core PHP 4, the error_log() function continues to function easily in PHP 5, PHP 7, and PHP 8.

Example 1

First we will show you the basic example of the PHP Error Handling error_log() function to log an error message to the server's default error log to track errors.

<?php
   // Log a basic error
   error_log("Basic Error: Unable to connect to the database.");
?>

Output

Here is the outcome of the following code −

Basic Error: Unable to connect to the database.

Example 2

Below code example shows how to use the error_log() method to log errors to a custom file. This is very useful when you want to organize error messages somewhere other than the default server log.

<?php
   // Define a custom error file path
   $custom_log_file = "/var/logs/custom_error.log";

   // Log an error to the given file
   error_log("File Error: Failed to open file.", 3, $custom_log_file);
?> 

Output

This will generate the below output −

Warning: error_log(/var/logs/custom_error.log): Failed to open stream: Permission denied in /Users/abc/Desktop/PhpProjects/index.php on line 12

Example 3

This example sends an error notification using the error_log() function to an administrator by email, as is suitable for critical alerts. The given PHP code emails a critical error alert to the given recipient. If the script runs well and email sending is properly configured, the recipient will receive an email.

<?php
   // Define the recipient email and additional headers
   $admin_email = "[email protected]";
   $headers = "From: [email protected]";

   // Send a critical error message via email
   error_log("Critical Error: Server disk space running low!", 1, $admin_email, $headers);
?> 

Output

This will create the below output −

Critical Error: Server disk space running low!

Example 4

This program dynamically logs errors with the help of the error_log() function to a custom file and sends them via email with conditional logic and useful debugging methods.

<?php
   // Dynamic error logging
   $error_message = "A dynamic error occurred.";
   $log_file = "/path/to/dynamic_error.log";

   // Log error to file
   error_log($error_message, 3, $log_file);

   // If critical, send error via email
   if ($is_critical = true) {
      error_log($error_message, 1, "[email protected]", "From: [email protected]");
   }
?> 

Output

Following is the output of the above code −

A dynamic error occurred.
php_function_reference.htm
Advertisements