From a299ef29c199e2b50251f71adbdd7cebccbc654e Mon Sep 17 00:00:00 2001 From: crose <carsten.rose@math.uzh.ch> Date: Sat, 16 Jun 2018 23:06:50 +0200 Subject: [PATCH] B5884: sql.log public readable. Default is now changed from typo3conf/sql.log to fileadmin/protected/log/sql.log|mail.log --- extension/ext_conf_template.txt | 8 ++++---- extension/qfq/qfq/Constants.php | 1 + extension/qfq/qfq/File.php | 1 + extension/qfq/qfq/helper/Logger.php | 14 +++++++++++--- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/extension/ext_conf_template.txt b/extension/ext_conf_template.txt index 4878b6c05..a4bad3791 100644 --- a/extension/ext_conf_template.txt +++ b/extension/ext_conf_template.txt @@ -51,11 +51,11 @@ fillStoreSystemBySqlErrorMsg3 = # cat=debug/sql; type=string; label=SQL log mode:Default is 'modify'. A logfile of QFQ fired SQL statements will be written. Possible modes are 'all' - every statement will be logged (this might a lot). 'modify' - log only statements who change data. 'error' - log only DB errors. 'none' - log never. sqlLogMode = modify -# cat=debug/sql; type=string; label=SQL log file:Default is 'typo3conf/sql.log'. A logfile of fired SQL statements. PathFile is absolute or relative to '<site path>'. -sqlLog = typo3conf/sql.log +# cat=debug/sql; type=string; label=SQL log file:Default is 'fileadmin/protected/log/sql.log'. A logfile of fired SQL statements. PathFile is absolute or relative to '<site path>'. +sqlLog = fileadmin/protected/log/sql.log -# cat=debug/mail; type=string; label=Mail log file:Default is 'typo3conf/mail.log'. A logfile of sent mail. PathFile is absolute or relative to '<site path>'. -mailLog = typo3conf/mail.log +# cat=debug/mail; type=string; label=Mail log file:Default is 'fileadmin/protected/log/mail.log'. A logfile of sent mail. PathFile is absolute or relative to '<site path>'. +mailLog = fileadmin/protected/log/mail.log # cat=debug/info; type=string; label=Show debug info:Default is 'auto'. Possible values: [yes|no|auto][,download]. For 'auto': If a BE User is logged in, a debug information will be shown on the FE. showDebugInfo = auto diff --git a/extension/qfq/qfq/Constants.php b/extension/qfq/qfq/Constants.php index ec0828034..94c320305 100644 --- a/extension/qfq/qfq/Constants.php +++ b/extension/qfq/qfq/Constants.php @@ -14,6 +14,7 @@ const CONFIG_T3 = 'LocalConfiguration.php'; // T3 config file const GFX_INFO = 'typo3conf/ext/qfq/Resources/Public/icons/note.gif'; const API_DIR = 'typo3conf/ext/qfq/qfq/api'; +const QFQ_LOG_DIR = 'fileadmin/protected/log'; const QFQ_LOG = 'qfq.log'; const QFQ_TEMP_FILE_PATTERN = 'qfq.split.XXXXX'; const QFQ_TEMP_SOURCE = '.temp.source'; diff --git a/extension/qfq/qfq/File.php b/extension/qfq/qfq/File.php index b3d25c95b..fc4987f05 100644 --- a/extension/qfq/qfq/File.php +++ b/extension/qfq/qfq/File.php @@ -34,6 +34,7 @@ class File { * @param bool|false $phpUnit * @throws CodeException * @throws UserFormException + * @throws UserReportException */ public function __construct($phpUnit = false) { $this->session = Session::getInstance($phpUnit); diff --git a/extension/qfq/qfq/helper/Logger.php b/extension/qfq/qfq/helper/Logger.php index 9ec42f3b1..67f27a98b 100644 --- a/extension/qfq/qfq/helper/Logger.php +++ b/extension/qfq/qfq/helper/Logger.php @@ -10,6 +10,7 @@ namespace qfq; require_once(__DIR__ . '/../Constants.php'); require_once(__DIR__ . '/../exceptions/UserFormException.php'); +require_once(__DIR__ . '/../helper/Support.php'); /** * Class Logger @@ -33,15 +34,22 @@ class Logger { } if (!$handle = fopen($filename, $mode)) { - throw new UserFormException("Error - cannot open. File: " . $filename . " ( CWD: " . getcwd() . ")", ERROR_IO_OPEN); + + // If open fails, maybe die directory does not exist. Create it: + Support::mkDirParent($filename); + + // Try to open the file a second time. + if (!$handle = fopen($filename, $mode)) { + throw new UserFormException("Error - cannot open. File: " . $filename . " ( CWD: " . getcwd() . ") - " . error_get_last(), ERROR_IO_OPEN); + } } if (fwrite($handle, $msg . PHP_EOL) === false) { - throw new UserFormException("Error - cannot write. File: " . $filename . " ( CWD: " . getcwd() . ")", ERROR_IO_WRITE); + throw new UserFormException("Error - cannot write. File: " . $filename . " ( CWD: " . getcwd() . ") - " . error_get_last(), ERROR_IO_WRITE); } fclose($handle); - } // logMessage() + } /** * @param array $fe -- GitLab