Send an error message to the defined error handling routines

# error_log

(PHP 4, PHP 5, PHP 7, PHP 8)

error_log — Send an error message to the defined error handling routines

### Description

error_log(
string `$message`,
int `$message_type` = 0,
?string `$destination` = `null`,
?string `$additional_headers` = `null`
): bool

Sends an error message to the web server's error log or to a file.

### Parameters

`message`

  The error message that should be logged.

`message_type`

  Says where the error should go. The possible message types are as follows:

  error_log() log types
  0 | `message` is sent to PHP's system logger, using the Operating System's system logging mechanism or a file, depending on what the error_log configuration directive is set to. This is the default option.
  1 | `message` is sent by email to the address in the `destination` parameter. This is the only message type where the fourth parameter, `additional_headers` is used.
  2 | No longer an option.
  3 | `message` is appended to the file `destination`. A newline is not automatically added to the end of the `message` string.
  4 | `message` is sent directly to the SAPI logging handler.

`destination`

  The destination. Its meaning depends on the `message_type` parameter as described above.

`additional_headers`

  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 Values

Returns `true` on success or `false` on failure. If `message_type` is zero, this function always returns `true`, regardless of whether the error could be logged or not.

### Changelog

Version | Description
--- | ---
8.0.0 | `destination` and `additional_headers` are now nullable.

### Examples

Example #1 error_log() examples

`<?php
// Send notification through the server log if we can not
// connect to the database.
if (!Ora_Logon($username, $password)) {
error_log("Oracle database not available!", 0);
}
// Notify administrator by email if we run out of FOO
if (!($foo = allocate_new_foo())) {
error_log("Big trouble, we're all out of FOOs!", 1,
"operator@example.com");
}
// another way to call error_log():
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
?>`

### Notes

Warning

error_log() is not binary safe. `message` will be truncated by null character.

Tip

`message` should not contain null character. Note that `message` may be sent to file, mail, syslog, etc. Use appropriate conversion/escape function, base64_encode(), rawurlencode() or addslashes() before calling error_log().

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open