Move log level check to logger parent class

* remove duplicate code from child classes
This commit is contained in:
Morris Jobke 2015-04-30 12:06:52 +02:00
parent c9921ec127
commit 892b5ceeeb
4 changed files with 45 additions and 45 deletions

View File

@ -172,7 +172,13 @@ class Log implements ILogger {
// interpolate replacement values into the message and return // interpolate replacement values into the message and return
$message = strtr($message, $replace); $message = strtr($message, $replace);
$logger = $this->logger; $config = \OC::$server->getSystemConfig();
call_user_func(array($logger, 'write'), $app, $message, $level);
$minLevel = min($config->getValue('loglevel', \OC_Log::WARN), \OC_Log::ERROR);
if ($level >= $minLevel) {
$logger = $this->logger;
call_user_func(array($logger, 'write'), $app, $message, $level);
}
} }
} }

View File

@ -39,10 +39,7 @@ class OC_Log_Errorlog {
* @param int $level * @param int $level
*/ */
public static function write($app, $message, $level) { public static function write($app, $message, $level) {
$minLevel = min(OC_Config::getValue("loglevel", OC_Log::WARN), OC_Log::ERROR); error_log('[owncloud]['.$app.']['.$level.'] '.$message);
if ($level >= $minLevel) {
error_log('[owncloud]['.$app.'] '.$message);
}
} }
} }

View File

@ -69,40 +69,40 @@ class OC_Log_Owncloud {
* @param int $level * @param int $level
*/ */
public static function write($app, $message, $level) { public static function write($app, $message, $level) {
$minLevel=min(OC_Config::getValue( "loglevel", OC_Log::WARN ), OC_Log::ERROR); $config = \OC::$server->getSystemConfig();
if($level>=$minLevel) {
// default to ISO8601 // default to ISO8601
$format = OC_Config::getValue('logdateformat', 'c'); $format = $config->getValue('logdateformat', 'c');
$logtimezone=OC_Config::getValue( "logtimezone", 'UTC' ); $logtimezone = $config->getValue( "logtimezone", 'UTC' );
try { try {
$timezone = new DateTimeZone($logtimezone); $timezone = new DateTimeZone($logtimezone);
} catch (Exception $e) { } catch (Exception $e) {
$timezone = new DateTimeZone('UTC'); $timezone = new DateTimeZone('UTC');
} }
$time = new DateTime(null, $timezone); $time = new DateTime(null, $timezone);
$request = \OC::$server->getRequest(); $request = \OC::$server->getRequest();
$reqId = $request->getId(); $reqId = $request->getId();
$remoteAddr = $request->getRemoteAddress(); $remoteAddr = $request->getRemoteAddress();
// remove username/passwords from URLs before writing the to the log file // remove username/passwords from URLs before writing the to the log file
$time = $time->format($format); $time = $time->format($format);
if($minLevel == OC_Log::DEBUG) { $minLevel=min($config->getValue( "loglevel", OC_Log::WARN ), OC_Log::ERROR);
$url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '--'; if($minLevel == OC_Log::DEBUG) {
$method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : '--'; $url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '--';
$entry = compact('reqId', 'remoteAddr', 'app', 'message', 'level', 'time', 'method', 'url'); $method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : '--';
} $entry = compact('reqId', 'remoteAddr', 'app', 'message', 'level', 'time', 'method', 'url');
else { }
$entry = compact('reqId', 'remoteAddr', 'app', 'message', 'level', 'time'); else {
} $entry = compact('reqId', 'remoteAddr', 'app', 'message', 'level', 'time');
$entry = json_encode($entry); }
$handle = @fopen(self::$logFile, 'a'); $entry = json_encode($entry);
@chmod(self::$logFile, 0640); $handle = @fopen(self::$logFile, 'a');
if ($handle) { @chmod(self::$logFile, 0640);
fwrite($handle, $entry."\n"); if ($handle) {
fclose($handle); fwrite($handle, $entry."\n");
} else { fclose($handle);
// Fall back to error_log } else {
error_log($entry); // Fall back to error_log
} error_log($entry);
} }
} }

View File

@ -47,10 +47,7 @@ class OC_Log_Syslog {
* @param int $level * @param int $level
*/ */
public static function write($app, $message, $level) { public static function write($app, $message, $level) {
$minLevel = min(OC_Config::getValue("loglevel", OC_Log::WARN), OC_Log::ERROR); $syslog_level = self::$levels[$level];
if ($level >= $minLevel) { syslog($syslog_level, '{'.$app.'} '.$message);
$syslog_level = self::$levels[$level];
syslog($syslog_level, '{'.$app.'} '.$message);
}
} }
} }