Skip to content

Commit

Permalink
Added stdout log target for the console application
Browse files Browse the repository at this point in the history
  • Loading branch information
SilverFire committed Jul 10, 2019
1 parent 7cd86cf commit 6eabf74
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 0 deletions.
8 changes: 8 additions & 0 deletions config/console.php
Expand Up @@ -41,6 +41,14 @@
'container' => [
'singletons' => $singletons,
],
'logger' => [
'__class' => \yii\log\Logger::class,
'targets' => [
[
'__class' => \hiapi\console\ConsoleLogTarget::class,
],
]
],
], $app) : array_merge([
'app' => $app,
], $singletons);
65 changes: 65 additions & 0 deletions src/console/ConsoleLogTarget.php
@@ -0,0 +1,65 @@
<?php

namespace hiapi\console;

use Psr\Log\LogLevel;
use yii\helpers\Console;
use yii\helpers\VarDumper;

/**
* Class ConsoleLogTarget
*
* @author Dmytro Naumenko <d.naumenko.a@gmail.com>
*/
class ConsoleLogTarget extends \yii\log\Target
{
public $exportInterval = 1;

public $exportContext = [
LogLevel::EMERGENCY => false,
LogLevel::ERROR => false,
LogLevel::ALERT => false,
LogLevel::CRITICAL => false,
LogLevel::WARNING => false,
];

public static $styles = [
LogLevel::EMERGENCY => [Console::BOLD, Console::BG_RED],
LogLevel::ERROR => [Console::FG_RED, Console::BOLD],
LogLevel::ALERT => [Console::FG_RED],
LogLevel::CRITICAL => [Console::FG_RED],
LogLevel::WARNING => [Console::FG_YELLOW],
];

public function export()
{
foreach ($this->messages as $message) {
$this->out($message[0], $message[1]);
$this->outContext($message[0], $message[2]);
}
}

private function outContext($level, $context)
{
if ($this->exportContext[$level] ?? false) {
$export = VarDumper::export($context);
Console::stdout($export . "\n");
}
}

public function out($level, $message)
{
$style = self::$styles[$level];
if ($style) {
$message = Console::ansiFormat($message, $style);
} else {
return;
}
Console::stdout($message . "\n");
}

protected function getContextMessage()
{
return '';
}
}

0 comments on commit 6eabf74

Please sign in to comment.