Fixed bug #14339: Better options for deprecation log
authorSteffen Kamper <info@sk-typo3.de>
Fri, 14 May 2010 21:12:30 +0000 (21:12 +0000)
committerSteffen Kamper <info@sk-typo3.de>
Fri, 14 May 2010 21:12:30 +0000 (21:12 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@7616 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
t3lib/class.t3lib_div.php
t3lib/config_default.php

index a1f983a..92accee 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,7 @@
 
 2010-05-14  Steffen Kamper  <info@sk-typo3.de>
 
+       * Fixed bug #14339: Better options for deprecation log
        * Fixed bug #14375: Rewrite of the debug panel (More Features!, More Stability!, More Usability!) (Stefan Galinski)
        * Follow-up to bug #14365: Bug: Install Tool skin is sometimes wrong (thanks to Lars Houmark)
        * Fixed bug #14367: Install Tool does not provide a logout possibility (thanks to Lars Houmark)
index 7b14da3..3bf58a0 100644 (file)
@@ -5731,19 +5731,34 @@ final class t3lib_div {
                        return;
                }
 
-               // write a longer message to the deprecation log
-               $destination = PATH_typo3conf . '/deprecation_' . self::shortMD5(PATH_site . $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey']) . '.log';
-               $file = @fopen($destination, 'a');
-               if ($file) {
-                       $date = date($GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy'] . ' ' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['hhmm'] . ': ');
-                       flock($file, LOCK_EX);  // try locking, but ignore if not available (eg. on NFS and FAT)
-                       @fwrite($file, $date.$msg.LF);
-                       flock($file, LOCK_UN);    // release the lock
-                       @fclose($file);
-               }
-
-               // copy message also to the developer log
-               self::devLog($msg, 'Core', self::SYSLOG_SEVERITY_WARNING);
+               $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)
+               if ($log === TRUE || $log == '1') {
+                       $log = 'file';
+               }
+
+               if (stripos($log, 'file') !== FALSE) {
+                       // write a longer message to the deprecation log
+                       $destination = PATH_typo3conf . '/deprecation_' . self::shortMD5(PATH_site . $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey']) . '.log';
+                       $file = @fopen($destination, 'a');
+                       if ($file) {
+                               flock($file, LOCK_EX);  // try locking, but ignore if not available (eg. on NFS and FAT)
+                               @fwrite($file, $date . $msg . LF);
+                               flock($file, LOCK_UN);    // release the lock
+                               @fclose($file);
+                       }
+               }
+
+               if (stripos($log, 'devlog') !== FALSE) {
+                       // copy message also to the developer log
+                       self::devLog($msg, 'Core', self::SYSLOG_SEVERITY_WARNING);
+               }
+
+               if (stripos($log, 'console') !== FALSE) {
+                       self::debug($msg, $date, 'Deprecation Log');
+               }
        }
 
        /**
index a31929c..a4fa834 100644 (file)
@@ -97,7 +97,7 @@ $TYPO3_CONF_VARS = array(
                'phpTimeZone' => '',                                    // String: timezone to force for all date() and mktime() functions. A list of supported values can be found at http://php.net/manual/en/timezones.php. If this is not set, a valid fallback will be searched for by PHP (php.ini's date.timezone setting, server defaults, etc); and if no fallback is found, the value of "UTC" is used instead.
                'systemLog' => '',                                              // String, semi-colon separated list: Defines one or more logging methods. Possible methods: file,<abs-path-to-file>[,<level>];mail,<to>[/<from>][,<level>];syslog,<facility>,[,<level>];error_log[,,<level>]. "file" logs to a file, "mail" sends the log entries via mail, "syslog" uses the operating system's log, "error_log" uses the PHP error log. The level is the individual logging level (see [SYS][systemLogLevel]. Facility may be one of LOCAL0..LOCAL7, USER (on Windows USER is the only valid type).
                'systemLogLevel' => 0,                                  // Integer: Only messages with same or higher severity are logged; 0 is info, 1 is notice, 2 is warning, 3 is error, 4 is fatal error.
-               'enableDeprecationLog' => TRUE,                 // Boolean: Enables the logging of deprecated methods and functions. The log file will be written to typo3conf/deprecation_[hash-value].log
+               'enableDeprecationLog' => '',                   // Commalist: Enables the logging of deprecated methods and functions. Default is empty for no logging. The following options are allowed: 'file': The log file will be written to typo3conf/deprecation_[hash-value].log  'devlog': The log file will be written to dev log  'console': The log will be displayed in the Backend's Debug Console. The logging options can be combined by comma-separating them.
                '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 and [BE][forceCharset] is set to utf-8, 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.
                'lockingMode' => 'simple',                                      // String: Define which locking mode is used to control requests to pages being generated. Can be one of either "disable" (no locking), "simple" (checks for file existance), "flock" (using PHPs flock() function), "semaphore" (using PHPs sem_acquire() function). Default is "disable".