mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
More verbose file migration logging
See https://github.com/silverstripeltd/open-sourcerers/issues/91 * Add `PreformattedEchoHandler` cherry-picked from 4c3f3e6bea99b46b689e5b23d1bd1498a4ac696c * Batch log messages for every 100 file. Also make logger work for stdout * Update src/Logging/PreformattedEchoHandler.php Co-Authored-By: bergice <bergice@users.noreply.github.com>
This commit is contained in:
parent
c63eecc3e1
commit
17f4d5f73a
@ -2,7 +2,13 @@
|
|||||||
|
|
||||||
namespace SilverStripe\Dev\Tasks;
|
namespace SilverStripe\Dev\Tasks;
|
||||||
|
|
||||||
|
use Monolog\Handler\StreamHandler;
|
||||||
|
use Monolog\Logger;
|
||||||
|
use Psr\Log\LoggerInterface;
|
||||||
use SilverStripe\AssetAdmin\Helper\ImageThumbnailHelper;
|
use SilverStripe\AssetAdmin\Helper\ImageThumbnailHelper;
|
||||||
|
use SilverStripe\Control\Director;
|
||||||
|
use SilverStripe\Core\Injector\Injector;
|
||||||
|
use SilverStripe\Logging\PreformattedEchoHandler;
|
||||||
use SilverStripe\ORM\DB;
|
use SilverStripe\ORM\DB;
|
||||||
use SilverStripe\Assets\FileMigrationHelper;
|
use SilverStripe\Assets\FileMigrationHelper;
|
||||||
use SilverStripe\Dev\BuildTask;
|
use SilverStripe\Dev\BuildTask;
|
||||||
@ -12,7 +18,6 @@ use SilverStripe\Dev\BuildTask;
|
|||||||
*/
|
*/
|
||||||
class MigrateFileTask extends BuildTask
|
class MigrateFileTask extends BuildTask
|
||||||
{
|
{
|
||||||
|
|
||||||
private static $segment = 'MigrateFileTask';
|
private static $segment = 'MigrateFileTask';
|
||||||
|
|
||||||
protected $title = 'Migrate File dataobjects from 3.x';
|
protected $title = 'Migrate File dataobjects from 3.x';
|
||||||
@ -23,6 +28,8 @@ class MigrateFileTask extends BuildTask
|
|||||||
|
|
||||||
public function run($request)
|
public function run($request)
|
||||||
{
|
{
|
||||||
|
$this->addLogHandlers();
|
||||||
|
|
||||||
if (!class_exists(FileMigrationHelper::class)) {
|
if (!class_exists(FileMigrationHelper::class)) {
|
||||||
DB::alteration_message("No file migration helper detected", "notice");
|
DB::alteration_message("No file migration helper detected", "notice");
|
||||||
return;
|
return;
|
||||||
@ -46,4 +53,22 @@ class MigrateFileTask extends BuildTask
|
|||||||
}
|
}
|
||||||
ImageThumbnailHelper::singleton()->run();
|
ImageThumbnailHelper::singleton()->run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO Refactor this whole mess into Symfony Console on a TaskRunner level,
|
||||||
|
* with a thin wrapper to show coloured console output via a browser:
|
||||||
|
* https://github.com/silverstripe/silverstripe-framework/issues/5542
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
protected function addLogHandlers()
|
||||||
|
{
|
||||||
|
if ($logger = Injector::inst()->get(LoggerInterface::class)) {
|
||||||
|
if (Director::is_cli()) {
|
||||||
|
$logger->pushHandler(new StreamHandler('php://stdout'));
|
||||||
|
$logger->pushHandler(new StreamHandler('php://stderr', Logger::WARNING));
|
||||||
|
} else {
|
||||||
|
$logger->pushHandler(new PreformattedEchoHandler());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
27
src/Logging/PreformattedEchoHandler.php
Normal file
27
src/Logging/PreformattedEchoHandler.php
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace SilverStripe\Logging;
|
||||||
|
|
||||||
|
use Monolog\Handler\AbstractProcessingHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Echo the output as preformatted HTML, emulating console output in a browser.
|
||||||
|
* Tiding us over until we can properly decoupled web from CLI output.
|
||||||
|
* Do not use this API outside of core modules,
|
||||||
|
* it'll likely be removed as part of a larger refactor.
|
||||||
|
*
|
||||||
|
* See https://github.com/silverstripe/silverstripe-framework/issues/5542
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
class PreformattedEchoHandler extends AbstractProcessingHandler
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $record
|
||||||
|
*/
|
||||||
|
protected function write(array $record)
|
||||||
|
{
|
||||||
|
echo sprintf('<pre>%s</pre>', htmlspecialchars($record['formatted'], ENT_QUOTES, 'UTF-8'));
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user