]> source.dussan.org Git - nextcloud-server.git/commitdiff
Try to create custom log file before falling back to default.
authorAndreas Fischer <bantu@owncloud.com>
Sun, 20 Oct 2013 21:58:07 +0000 (23:58 +0200)
committerAndreas Fischer <bantu@owncloud.com>
Sun, 20 Oct 2013 21:58:07 +0000 (23:58 +0200)
lib/private/log/owncloud.php

index 036c93cd8e142534adc0c3175f24c42bafb9c2fc..15cace88f4173970f7a5e273e1824c0ef65f89ea 100644 (file)
@@ -35,7 +35,17 @@ class OC_Log_Owncloud {
        public static function init() {
                $defaultLogFile = OC_Config::getValue("datadirectory", OC::$SERVERROOT.'/data').'/owncloud.log';
                self::$logFile = OC_Config::getValue("logfile", $defaultLogFile);
-               if (!file_exists(self::$logFile)) {
+
+               /*
+               * Fall back to default log file if specified logfile does not exist
+               * and can not be created. Error suppression is required in order to
+               * not end up in the error handler which will try to log the error.
+               * A better solution (compared to error suppression) would be checking
+               * !is_writable(dirname(self::$logFile)) before touch(), but
+               * is_writable() on directories used to be pretty unreliable on Windows
+               * for at least some time.
+               */
+               if (!file_exists(self::$logFile) && !@touch(self::$logFile)) {
                        self::$logFile = $defaultLogFile;
                }
        }