[TASK] Adhere enableDeprecationLog settings 10/18510/7
authorMichael Schams <typo3@2013.trash.schams.net>
Wed, 27 Feb 2013 11:42:29 +0000 (12:42 +0100)
committerPhilipp Gampe <philipp.gampe@typo3.org>
Thu, 18 Jul 2013 11:44:04 +0000 (13:44 +0200)
Refactoring of function deprecationLog() to prevent accidental
activation of log file creation due to misconfiguration.
Correct misleading configuration description (label in Install Tool).

Resolves: #43900
Releases: 6.2
Change-Id: I04164270ea3359014b6637d6c68cf2d9348356b0
Reviewed-on: https://review.typo3.org/18510
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Alexander Opitz
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
typo3/sysext/core/Classes/Utility/GeneralUtility.php
typo3/sysext/core/Configuration/DefaultConfiguration.php

index 59cb852..2e12e3d 100644 (file)
@@ -4785,13 +4785,15 @@ Connection: close
                if (!$GLOBALS['TYPO3_CONF_VARS']['SYS']['enableDeprecationLog']) {
                        return;
                }
-               $log = $GLOBALS['TYPO3_CONF_VARS']['SYS']['enableDeprecationLog'];
-               $date = date($GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy'] . ' ' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['hhmm'] . ': ');
                // Legacy values (no strict comparison, $log can be boolean, string or int)
+               $log = $GLOBALS['TYPO3_CONF_VARS']['SYS']['enableDeprecationLog'];
                if ($log === TRUE || $log == '1') {
-                       $log = 'file';
+                       $log = array('file');
+               } else {
+                       $log = self::trimExplode(',', $GLOBALS['TYPO3_CONF_VARS']['SYS']['enableDeprecationLog'], TRUE);
                }
-               if (stripos($log, 'file') !== FALSE) {
+               $date = date($GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy'] . ' ' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['hhmm'] . ': ');
+               if (in_array('file', $log) !== FALSE) {
                        // In case lock is acquired before autoloader was defined:
                        if (class_exists('TYPO3\\CMS\\Core\\Locking\\Locker') === FALSE) {
                                require_once ExtensionManagementUtility::extPath('core') . 'Classes/Locking/Locker.php';
@@ -4810,12 +4812,12 @@ Connection: close
                        }
                        $lockObject->release();
                }
-               if (stripos($log, 'devlog') !== FALSE) {
+               if (in_array('devlog', $log) !== FALSE) {
                        // Copy message also to the developer log
                        self::devLog($msg, 'Core', self::SYSLOG_SEVERITY_WARNING);
                }
                // Do not use console in login screen
-               if (stripos($log, 'console') !== FALSE && isset($GLOBALS['BE_USER']->user['uid'])) {
+               if (in_array('console', $log) !== FALSE && isset($GLOBALS['BE_USER']->user['uid'])) {
                        \TYPO3\CMS\Core\Utility\DebugUtility::debug($msg, $date, 'Deprecation Log');
                }
        }
index f380c45..00c7849 100644 (file)
@@ -122,7 +122,7 @@ return array(
                'phpTimeZone' => '',                                    // String: timezone to force for all date() and mktime() functions. A list of supported values can be found at <a href="http://php.net/manual/en/timezones.php" target="_blank">php.net</a>. If this is not set, a valid fallback will be searched for by PHP (php.ini's <a href="http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone" target="_blank">date.timezone</a> setting, server defaults, etc); and if no fallback is found, the value of "UTC" is used instead.
                'systemLog' => '',                                              // <p>String: semi-colon separated list. Defines one or more logging methods. Possible methods:</p><dl><dt>file,&lt;abs-path-to-file&gt;[,&lt;level&gt;]</dt><dd>logs to a file</dd><dt>mail,&lt;to&gt;[/&lt;from&gt;][,&lt;level&gt;]</dt><dd>sends the log entries via mail</dd><dt>syslog,&lt;facility&gt;,[,&lt;level&gt;]</dt><dd>uses the operating system's log. Facility may be one of LOCAL0..LOCAL7, USER (on Windows USER is the only valid type).</dd><dt>error_log[,,&lt;level&gt;]</dt><dd>uses the PHP error log</dd></dl><p>The &lt;level&gt; is the individual logging level (see <a href="#SYS-systemLogLevel">[SYS][systemLogLevel]</a>).</p>
                'systemLogLevel' => 0,                                  // <p>Integer (0, 1, 2, 3, 4): Only messages with same or higher severity are logged.</p><ul><li>0: info</li><li>1: notice</li><li>2: warning</li><li>3: error</li><li>4: fatal error</li></ul>
-               'enableDeprecationLog' => 'file',               // Commalist: Enables the logging of deprecated methods and functions. Default is 'file'. The following options are allowed: <dl><dt>file</dt><dd>The log file will be written to typo3conf/deprecation_[hash-value].log</dd><dt>devlog</dt><dd>The log will be written to the development log</dd><dt>console<dt><dd>The log will be displayed in the Backend's Debug Console. The logging options can be combined by comma-separating them.</dd></dl>
+               'enableDeprecationLog' => 'file',               // If set, this configuration enables the logging of deprecated methods and functions. The following options are allowed: <dl><dt>String: &quot;file&quot; (or integer &quot;1&quot;)</dt><dd>The log file will be written to typo3conf/deprecation_[hash-value].log</dd><dt>String: &quot;devlog&quot;</dt><dd>The log will be written to the development log</dd><dt>String: &quot;console&quot;<dt><dd>The log will be displayed in the Backend's Debug Console.</dd></dl>Logging options &quot;file&quot;, &quot;devlog&quot; and &quot;console&quot; can be combined by comma-separating them. Default is &quot;file&quot;.
                'maxFileNameLength' => 60,                              // Integer: This is the maximum file name length. The value will be taken into account by basic file operations like renaming or creation of files and folders.
                'UTF8filesystem' => FALSE,                              // Boolean: If TRUE then TYPO3 uses utf-8 to store file names. This allows for accented Latin letters as well as any other non-latin characters like Cyrillic and Chinese.
                'systemLocale' => '',                                   // String: locale used for certain system related functions, e.g. escaping shell commands. If problems with filenames containing special characters occur, the value of this option is probably wrong. See <a href="http://php.net/manual/en/function.setlocale.php" target="_blank">setlocale()</a>.