View file test.4imas.ru/config/logger.php.php

File size: 1.29Kb
<?php
// =========================
// config/logger.php
// Безопасный аудит действий пользователей и админов
// =========================

// Путь к лог-файлу
define('AUDIT_LOG_FILE', __DIR__ . '/../storage/logs/audit.log');

/**
 * Логирование события
 *
 * @param string $type      Тип события: INFO, WARN, ERROR
 * @param int|null $user_id ID пользователя или null
 * @param string $message   Сообщение
 */
function log_event(string $type, ?int $user_id, string $message)
{
    $timestamp = date('Y-m-d H:i:s');
    $user_id_display = $user_id !== null ? $user_id : 'guest';

    // Экранируем новые строки
    $message = str_replace(["\r", "\n"], ' ', $message);

    // Формируем строку лога
    $line = "[$timestamp] $type  User $user_id_display: $message" . PHP_EOL;

    // Безопасная запись в файл
    $logFile = AUDIT_LOG_FILE;

    // Создаем папку если не существует
    if (!file_exists(dirname($logFile))) {
        mkdir(dirname($logFile), 0755, true);
    }

    // Запись с блокировкой
    file_put_contents($logFile, $line, FILE_APPEND | LOCK_EX);
}