зеркало из https://github.com/nextcloud/server.git
feat(occ): Add a --debug option to output all log levels to the output
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This commit is contained in:
Родитель
72b6db4043
Коммит
2ba0819243
12
console.php
12
console.php
|
@ -75,13 +75,21 @@ try {
|
||||||
$eventLogger->start('console:build_application', 'Build Application instance and load commands');
|
$eventLogger->start('console:build_application', 'Build Application instance and load commands');
|
||||||
|
|
||||||
$application = \OCP\Server::get(Application::class);
|
$application = \OCP\Server::get(Application::class);
|
||||||
$application->loadCommands(new ArgvInput(), new ConsoleOutput());
|
$argv = $_SERVER['argv'];
|
||||||
|
if (($key = array_search('--debug', $argv)) !== false) {
|
||||||
|
// Remove --debug option if it was passed
|
||||||
|
unset($argv[$key]);
|
||||||
|
$argv = array_values($argv);
|
||||||
|
}
|
||||||
|
|
||||||
|
$input = new ArgvInput($argv);
|
||||||
|
$application->loadCommands($input, new ConsoleOutput());
|
||||||
|
|
||||||
$eventLogger->end('console:build_application');
|
$eventLogger->end('console:build_application');
|
||||||
$eventLogger->start('console:run', 'Run the command');
|
$eventLogger->start('console:run', 'Run the command');
|
||||||
|
|
||||||
$application->setAutoExit(false);
|
$application->setAutoExit(false);
|
||||||
$exitCode = $application->run();
|
$exitCode = $application->run($input);
|
||||||
|
|
||||||
$eventLogger->end('console:run');
|
$eventLogger->end('console:run');
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace OC\Core\Listener;
|
||||||
|
|
||||||
|
use OCP\EventDispatcher\Event;
|
||||||
|
use OCP\EventDispatcher\IEventListener;
|
||||||
|
use OCP\Log\BeforeMessageLoggedEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Listen to log calls and output them to STDOUT for debug purposes
|
||||||
|
* @template-implements IEventListener<BeforeMessageLoggedEvent>
|
||||||
|
*/
|
||||||
|
class BeforeMessageLoggedEventListener implements IEventListener {
|
||||||
|
public function handle(Event $event): void {
|
||||||
|
if (!$event instanceof BeforeMessageLoggedEvent) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
echo
|
||||||
|
match($event->getLevel()) {
|
||||||
|
0 => '[debug]',
|
||||||
|
1 => '[info]',
|
||||||
|
2 => '[warning]',
|
||||||
|
3 => '[error]',
|
||||||
|
4 => '[fatal]',
|
||||||
|
default => '['.$event->getLevel().']',
|
||||||
|
}
|
||||||
|
.' ['.$event->getApp().'] '
|
||||||
|
.$event->getMessage()['message']
|
||||||
|
."\n";
|
||||||
|
}
|
||||||
|
}
|
12
lib/base.php
12
lib/base.php
|
@ -63,6 +63,7 @@ class OC {
|
||||||
* check if Nextcloud runs in cli mode
|
* check if Nextcloud runs in cli mode
|
||||||
*/
|
*/
|
||||||
public static bool $CLI = false;
|
public static bool $CLI = false;
|
||||||
|
public static bool $CLI_DEBUG = false;
|
||||||
|
|
||||||
public static \OC\Autoloader $loader;
|
public static \OC\Autoloader $loader;
|
||||||
|
|
||||||
|
@ -556,6 +557,12 @@ class OC {
|
||||||
self::$composerAutoloader = require_once OC::$SERVERROOT . '/lib/composer/autoload.php';
|
self::$composerAutoloader = require_once OC::$SERVERROOT . '/lib/composer/autoload.php';
|
||||||
self::$composerAutoloader->setApcuPrefix(null);
|
self::$composerAutoloader->setApcuPrefix(null);
|
||||||
|
|
||||||
|
if (self::$CLI && ($key = array_search('--debug', $_SERVER['argv'])) !== false) {
|
||||||
|
self::$CLI_DEBUG = true;
|
||||||
|
} else {
|
||||||
|
self::$CLI_DEBUG = false;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
self::initPaths();
|
self::initPaths();
|
||||||
// setup 3rdparty autoloader
|
// setup 3rdparty autoloader
|
||||||
|
@ -578,6 +585,11 @@ class OC {
|
||||||
self::$server = new \OC\Server(\OC::$WEBROOT, self::$config);
|
self::$server = new \OC\Server(\OC::$WEBROOT, self::$config);
|
||||||
self::$server->boot();
|
self::$server->boot();
|
||||||
|
|
||||||
|
if (self::$CLI_DEBUG) {
|
||||||
|
$eventDispatcher = \OCP\Server::get(IEventDispatcher::class);
|
||||||
|
$eventDispatcher->addServiceListener(\OCP\Log\BeforeMessageLoggedEvent::class, \OC\Core\Listener\BeforeMessageLoggedEventListener::class);
|
||||||
|
}
|
||||||
|
|
||||||
$eventLogger = Server::get(\OCP\Diagnostics\IEventLogger::class);
|
$eventLogger = Server::get(\OCP\Diagnostics\IEventLogger::class);
|
||||||
$eventLogger->log('autoloader', 'Autoloader', $loaderStart, $loaderEnd);
|
$eventLogger->log('autoloader', 'Autoloader', $loaderStart, $loaderEnd);
|
||||||
$eventLogger->start('boot', 'Initialize');
|
$eventLogger->start('boot', 'Initialize');
|
||||||
|
|
|
@ -1236,6 +1236,7 @@ return array(
|
||||||
'OC\\Core\\Events\\PasswordResetEvent' => $baseDir . '/core/Events/PasswordResetEvent.php',
|
'OC\\Core\\Events\\PasswordResetEvent' => $baseDir . '/core/Events/PasswordResetEvent.php',
|
||||||
'OC\\Core\\Exception\\LoginFlowV2NotFoundException' => $baseDir . '/core/Exception/LoginFlowV2NotFoundException.php',
|
'OC\\Core\\Exception\\LoginFlowV2NotFoundException' => $baseDir . '/core/Exception/LoginFlowV2NotFoundException.php',
|
||||||
'OC\\Core\\Exception\\ResetPasswordException' => $baseDir . '/core/Exception/ResetPasswordException.php',
|
'OC\\Core\\Exception\\ResetPasswordException' => $baseDir . '/core/Exception/ResetPasswordException.php',
|
||||||
|
'OC\\Core\\Listener\\BeforeMessageLoggedEventListener' => $baseDir . '/core/Listener/BeforeMessageLoggedEventListener.php',
|
||||||
'OC\\Core\\Listener\\BeforeTemplateRenderedListener' => $baseDir . '/core/Listener/BeforeTemplateRenderedListener.php',
|
'OC\\Core\\Listener\\BeforeTemplateRenderedListener' => $baseDir . '/core/Listener/BeforeTemplateRenderedListener.php',
|
||||||
'OC\\Core\\Middleware\\TwoFactorMiddleware' => $baseDir . '/core/Middleware/TwoFactorMiddleware.php',
|
'OC\\Core\\Middleware\\TwoFactorMiddleware' => $baseDir . '/core/Middleware/TwoFactorMiddleware.php',
|
||||||
'OC\\Core\\Migrations\\Version13000Date20170705121758' => $baseDir . '/core/Migrations/Version13000Date20170705121758.php',
|
'OC\\Core\\Migrations\\Version13000Date20170705121758' => $baseDir . '/core/Migrations/Version13000Date20170705121758.php',
|
||||||
|
|
|
@ -1269,6 +1269,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
|
||||||
'OC\\Core\\Events\\PasswordResetEvent' => __DIR__ . '/../../..' . '/core/Events/PasswordResetEvent.php',
|
'OC\\Core\\Events\\PasswordResetEvent' => __DIR__ . '/../../..' . '/core/Events/PasswordResetEvent.php',
|
||||||
'OC\\Core\\Exception\\LoginFlowV2NotFoundException' => __DIR__ . '/../../..' . '/core/Exception/LoginFlowV2NotFoundException.php',
|
'OC\\Core\\Exception\\LoginFlowV2NotFoundException' => __DIR__ . '/../../..' . '/core/Exception/LoginFlowV2NotFoundException.php',
|
||||||
'OC\\Core\\Exception\\ResetPasswordException' => __DIR__ . '/../../..' . '/core/Exception/ResetPasswordException.php',
|
'OC\\Core\\Exception\\ResetPasswordException' => __DIR__ . '/../../..' . '/core/Exception/ResetPasswordException.php',
|
||||||
|
'OC\\Core\\Listener\\BeforeMessageLoggedEventListener' => __DIR__ . '/../../..' . '/core/Listener/BeforeMessageLoggedEventListener.php',
|
||||||
'OC\\Core\\Listener\\BeforeTemplateRenderedListener' => __DIR__ . '/../../..' . '/core/Listener/BeforeTemplateRenderedListener.php',
|
'OC\\Core\\Listener\\BeforeTemplateRenderedListener' => __DIR__ . '/../../..' . '/core/Listener/BeforeTemplateRenderedListener.php',
|
||||||
'OC\\Core\\Middleware\\TwoFactorMiddleware' => __DIR__ . '/../../..' . '/core/Middleware/TwoFactorMiddleware.php',
|
'OC\\Core\\Middleware\\TwoFactorMiddleware' => __DIR__ . '/../../..' . '/core/Middleware/TwoFactorMiddleware.php',
|
||||||
'OC\\Core\\Migrations\\Version13000Date20170705121758' => __DIR__ . '/../../..' . '/core/Migrations/Version13000Date20170705121758.php',
|
'OC\\Core\\Migrations\\Version13000Date20170705121758' => __DIR__ . '/../../..' . '/core/Migrations/Version13000Date20170705121758.php',
|
||||||
|
|
Загрузка…
Ссылка в новой задаче