Merge pull request #5437 from owncloud/create-custom-logfile

Try to create custom log file before falling back to default.
This commit is contained in:
Thomas Müller 2013-10-22 01:17:31 -07:00
commit 9d976013da
1 changed files with 11 additions and 1 deletions

View 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;
}
}