83 lines
1.9 KiB
PHP
83 lines
1.9 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Safe;
|
||
|
|
||
|
use Safe\Exceptions\ErrorfuncException;
|
||
|
|
||
|
/**
|
||
|
* Sends an error message to the web server's error log or to a file.
|
||
|
*
|
||
|
* @param string $message The error message that should be logged.
|
||
|
* @param int $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,
|
||
|
* extra_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.
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
* @param string $destination The destination. Its meaning depends on the
|
||
|
* message_type parameter as described above.
|
||
|
* @param string $extra_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.
|
||
|
* @throws ErrorfuncException
|
||
|
*
|
||
|
*/
|
||
|
function error_log(string $message, int $message_type = 0, string $destination = null, string $extra_headers = null): void
|
||
|
{
|
||
|
error_clear_last();
|
||
|
if ($extra_headers !== null) {
|
||
|
$result = \error_log($message, $message_type, $destination, $extra_headers);
|
||
|
} elseif ($destination !== null) {
|
||
|
$result = \error_log($message, $message_type, $destination);
|
||
|
} else {
|
||
|
$result = \error_log($message, $message_type);
|
||
|
}
|
||
|
if ($result === false) {
|
||
|
throw ErrorfuncException::createFromPhpError();
|
||
|
}
|
||
|
}
|