#php #slim #monolog
Вопрос:
Я использовал монолог раньше и не имел проблем, однако с этим приложением файлы журналов не создаются, хотя у меня есть предупреждения и уведомления о монологах по всему приложению, но ничего не было создано, Возможно, также стоит отметить, что у меня созданы переменные сеанса, но файлы сеанса в файле «var», однако я не уверен, что это та же проблема. Я использую xampp в качестве среды разработки.
Никаких ошибок выведено не было, и у меня есть var_dump регистратора, чтобы убедиться, что он был создан правильно, и, похоже, там нет проблем.
Вот структура файла:
Любая помощь будет признательна
/* 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 Да, это правильно, если я запускаю тест без условий, ничего не происходит, он ничего не пишет и не выдает ошибку.