mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
- replaced release version with package version in @since and @depreacated tags - removed @since tag from private properties/methods and non @api classes
67 lines
1.7 KiB
PHP
67 lines
1.7 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Deploy\Console;
|
|
|
|
use Magento\Framework\Exception\LocalizedException;
|
|
use Magento\Framework\Phrase;
|
|
use Magento\Setup\Model\ObjectManagerProvider;
|
|
use Psr\Log\LoggerInterface;
|
|
use Symfony\Component\Console\Output\OutputInterface;
|
|
|
|
/**
|
|
* Factory class for @see \Magento\Deploy\Console\ConsoleLogger
|
|
*
|
|
* This factory can be requested only in CLI command classes constructors
|
|
*/
|
|
class ConsoleLoggerFactory
|
|
{
|
|
/**
|
|
* Object manager instance
|
|
*
|
|
* @var ObjectManagerProvider
|
|
*/
|
|
private $objectManagerProvider;
|
|
|
|
/**
|
|
* Type of logger instance to create
|
|
*
|
|
* @var string
|
|
*/
|
|
private $type;
|
|
|
|
/**
|
|
* ConsoleLoggerFactory constructor
|
|
*
|
|
* @param ObjectManagerProvider $objectManagerProvider
|
|
* @param string $type
|
|
*/
|
|
public function __construct(ObjectManagerProvider $objectManagerProvider, $type = ConsoleLogger::class)
|
|
{
|
|
$this->objectManagerProvider = $objectManagerProvider;
|
|
$this->type = $type;
|
|
}
|
|
|
|
/**
|
|
* Create new logger instance
|
|
*
|
|
* @param OutputInterface $output
|
|
* @param int $verbose
|
|
* @return ConsoleLogger
|
|
* @throws LocalizedException
|
|
*/
|
|
public function getLogger(OutputInterface $output, $verbose)
|
|
{
|
|
$output->setVerbosity($verbose);
|
|
$logger = $this->objectManagerProvider->get()->create($this->type, ['output' => $output]);
|
|
if (!$logger instanceof LoggerInterface) {
|
|
throw new LocalizedException(
|
|
new Phrase("Wrong logger interface specified.")
|
|
);
|
|
}
|
|
return $logger;
|
|
}
|
|
}
|