Хранение логов приложения на PHP может быть выполнено различными способами, в зависимости от ваших требований к логированию. Ниже приведены несколько подходов, которые вы можете использовать:

1. Использование встроенных функций PHP

PHP предоставляет функции для записи в файл, такие как error_log(). Это простой способ записи логов в файл.

function logMessage($message) {
    $logFile = 'application.log';
    $timestamp = date('Y-m-d H:i:s');
    $logEntry = "{$timestamp} - {$message}\n";
    error_log($logEntry, 3, $logFile);
}

// Пример использования
logMessage('Приложение запущено');

2. Использование библиотеки Monolog

Monolog - это популярная библиотека для логирования в PHP. Она предоставляет гибкие возможности для логирования, включая различные обработчики (handlers) для записи логов в различные места (файлы, базы данных, почту и т.д.).

Для начала установите Monolog через Composer:

composer require monolog/monolog

Пример использования Monolog для записи логов в файл:

require 'vendor/autoload.php';

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// Создаем логгер
$logger = new Logger('my_logger');

// Добавляем обработчик, который записывает логи в файл
$logger->pushHandler(new StreamHandler('application.log', Logger::DEBUG));

// Записываем сообщение в лог
$logger->info('Приложение запущено');

3. Использование системного журнала

Если ваше приложение работает на Linux, вы можете использовать системный журнал для записи логов. Это может быть полезно для централизованного логирования и мониторинга.

function logToSyslog($message) {
    openlog('my_app', LOG_PID, LOG_USER);
    syslog(LOG_INFO, $message);
    closelog();
}

// Пример использования
logToSyslog('Приложение запущено');

Выбор подхода

  • Используйте встроенные функции PHP для простых задач логирования.
  • Используйте Monolog для более сложных сценариев, когда требуется гибкость и расширяемость.
  • Используйте системный журнал для централизованного логирования, особенно если ваше приложение работает на сервере Linux.

Выбор подхода зависит от ваших требований к логированию, таких как уровень детализации, необходимость централизованного логирования и т.д.