Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как записать сообщение в журнал

Короткий ответ

Дописывайте в файл строку с датой:

<?php
 
function logMessage(string $file, string $message): void
{
    $line = sprintf("[%s] %s\n", date('Y-m-d H:i:s'), $message);
 
    file_put_contents($file, $line, FILE_APPEND | LOCK_EX);
}
 
$file = sys_get_temp_dir() . '/recipe-app.log';
file_put_contents($file, '');
 
logMessage($file, 'User 42 logged in');
logMessage($file, 'Order 7 paid');
 
echo count(file($file)), ' lines';

Результат:

2 lines

Встроенная функция

error_log() пишет в журнал ошибок PHP или, с типом 3, в указанный файл:

<?php
 
$file = sys_get_temp_dir() . '/recipe-errors.log';
file_put_contents($file, '');
 
error_log("Payment failed for order 7\n", 3, $file);
 
echo file_get_contents($file);

Результат:

Payment failed for order 7

В большом проекте

Берите библиотеку Monolog: она умеет уровни сообщений, ежедневные файлы и отправку в сторонние сервисы. В журнал не пишут пароли, токены и номера карт.

Функции из этого ответа

  • error_log — Записывает сообщение в журнал ошибок.
  • file_put_contents — Записывает данные в файл.
  • date — Форматирует дату и время.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.