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

#php #slim #monolog

Вопрос:

Я использовал монолог раньше и не имел проблем, однако с этим приложением файлы журналов не создаются, хотя у меня есть предупреждения и уведомления о монологах по всему приложению, но ничего не было создано, Возможно, также стоит отметить, что у меня созданы переменные сеанса, но файлы сеанса в файле «var», однако я не уверен, что это та же проблема. Я использую xampp в качестве среды разработки.

Никаких ошибок выведено не было, и у меня есть var_dump регистратора, чтобы убедиться, что он был создан правильно, и, похоже, там нет проблем.

Вот структура файла:

quot;файловая структураquot;

Любая помощь будет признательна

      /* Settings file */
     // Get log file path
     $log_file_path = '/Football_Trivia_Game/logs/';
     // Define log file path
     define('LOG_FILE_PATH', $log_file_path);
 
     /* Dependencies.php */
    use MonologLogger;
    use MonologHandlerStreamHandler;
    use MonologHandlerFingersCrossedHandler;

    // Create container for two different kind of loggers
    // One logger will handles notices and the other handles warning
    $container['logger'] = function() {
    // Instantiate logger
    $logger = new Logger('logger');

    // Notices logger
    // Set notices log path
    $notices_log = LOG_FILE_PATH . 'notices.log';
    // Create stream handler for notices logger
    $stream_notices = new StreamHandler($notices_log, Logger::NOTICE);
    // Push stream handler into logger object
    $logger->pushHandler($stream_notices);

    // Warning logger
    // Set warning log path
    $warning_log = LOG_FILE_PATH . 'warnings.log';
    // Create stream handler for warnings logger
    $stream_warnings = new StreamHandler($warning_log, Logger::WARNING);
    // Push stream handler into logger object
    $logger->pushHandler($stream_warnings);

    $logger->pushProcessor(function ($record) {
        $record['context']['sid'] = session_id();
        return $record;
    });

    // Return looger
    return $logger;
    };
 
         /* This is an example of an attempt to use the logger in the database connection /*
        try {
            $pdo_handle = new PDO($host_details, $username, $password, $pdo_attributes);
            $this->db_handle = $pdo_handle;
            $this->logger->notice("Connected to database successfully!");
         }
         catch(PDOException $exception_object) {
            trigger_error('Error connection to the database');
            $pdo_error = 'Error connection to the database';
            $this->logger->warning("Failed to connect to database!");
         }
 

Комментарии:

1. Правильно ли я понимаю, что даже если вы пишете $this->logger->notice("Test message"); без каких-либо условий, это тоже ничего не значит?

2. @YourCommonSense Да, это правильно, если я запускаю тест без условий, ничего не происходит, он ничего не пишет и не выдает ошибку.