diff --git a/build/psalm-baseline.xml b/build/psalm-baseline.xml index 8fbc32c4fec..a84d9e0283a 100644 --- a/build/psalm-baseline.xml +++ b/build/psalm-baseline.xml @@ -3951,11 +3951,6 @@ - - - getMethod())]]> - - server['SCRIPT_NAME']; + $name = $this->server['SCRIPT_NAME'] ?? ''; $overwriteWebRoot = $this->config->getSystemValueString('overwritewebroot'); if ($overwriteWebRoot !== '' && $this->isOverwriteCondition()) { // FIXME: This code is untestable due to __DIR__, also that hardcoded path is really dangerous diff --git a/lib/private/Log/LogDetails.php b/lib/private/Log/LogDetails.php index 6063b25cef9..21abb6d85cb 100644 --- a/lib/private/Log/LogDetails.php +++ b/lib/private/Log/LogDetails.php @@ -1,12 +1,17 @@ config->getValue('logdateformat', \DateTimeInterface::ATOM); $logTimeZone = $this->config->getValue('logtimezone', 'UTC'); @@ -30,13 +35,13 @@ abstract class LogDetails { // apply timezone if $time is created from UNIX timestamp $time->setTimezone($timezone); } - $request = \OC::$server->getRequest(); + $request = Server::get(IRequest::class); $reqId = $request->getId(); $remoteAddr = $request->getRemoteAddress(); // remove username/passwords from URLs before writing the to the log file $time = $time->format($format); $url = ($request->getRequestUri() !== '') ? $request->getRequestUri() : '--'; - $method = is_string($request->getMethod()) ? $request->getMethod() : '--'; + $method = $request->getMethod(); if ($this->config->getValue('installed', false)) { $user = \OC_User::getUser() ?: '--'; } else { @@ -47,6 +52,7 @@ abstract class LogDetails { $userAgent = '--'; } $version = $this->config->getValue('version', ''); + $scriptName = $request->getScriptName(); $entry = compact( 'reqId', 'level', @@ -56,14 +62,19 @@ abstract class LogDetails { 'app', 'method', 'url', + 'scriptName', 'message', 'userAgent', - 'version' + 'version', ); $clientReqId = $request->getHeader('X-Request-Id'); if ($clientReqId !== '') { $entry['clientReqId'] = $clientReqId; } + if (\OC::$CLI) { + /* Only logging the command, not the parameters */ + $entry['occ_command'] = array_slice($_SERVER['argv'] ?? [], 0, 2); + } if (is_array($message)) { // Exception messages are extracted and the exception is put into a separate field @@ -82,7 +93,7 @@ abstract class LogDetails { return $entry; } - public function logDetailsAsJSON(string $app, $message, int $level): string { + public function logDetailsAsJSON(string $app, string|array $message, int $level): string { $entry = $this->logDetails($app, $message, $level); // PHP's json_encode only accept proper UTF-8 strings, loop over all // elements to ensure that they are properly UTF-8 compliant or convert