如何在 Laravel 的控制台上打印消息?

Posted

技术标签:

【中文标题】如何在 Laravel 的控制台上打印消息?【英文标题】:How to print messages on console in Laravel? 【发布时间】:2017-07-08 13:04:02 【问题描述】:

运行 php artisan serve 时,laravel 如何在控制台打印出一些字符串? 我试过Log::info,但它不起作用。

【问题讨论】:

可能相关:How do I write to the console from a Laravel Controller?, How to echo to console in Laravel and Artisan? 【参考方案1】:

很简单。

你可以在APP的任何地方调用它。

$out = new \Symfony\Component\Console\Output\ConsoleOutput();
$out->writeln("Hello from Terminal");

【讨论】:

【参考方案2】:

试试

error_log('message here.');

Read More


如果你添加 LOG

Log::info('message');

如果 LOG 带有一个数组

Log::info(json_encode($array));

导入Illuminate\Support\Facades\Log;

【讨论】:

Log::info()Log::debug() 不会写入浏览器控制台,它们会写入 storage/logs/laravel-YYYY-MM-DD.log。此外,您必须导入Illuminate\Support\Facades\Log。然后,您可以使用 tail -f storage/logs/laravel-2022-01-19.log 即时显示它们。【参考方案3】:

Laravel 5.6 简化了这一点,因为您现在有了一个可以利用的 logging.php 配置文件。

要知道的关键是您要输出到stdout,而php 有一个内置的流包装器,称为php://stdout。鉴于此,您可以为该包装器添加通道。您可以将标准输出“频道”添加到您要登录的频道中。

以下是配置的基本外观:

<?php    

return [
  'default' => env('LOG_CHANNEL', 'stack'),

  'channels' => [
    'stack' => [
        'driver' => 'stack',
        'channels' => ['single','stdout'],
    ],

    'single' => [
        'driver' => 'single',
        'path' => storage_path('logs/laravel.log'),
        'level' => 'debug',
    ],

    'stdout' => [
        'driver' => 'monolog',
        'handler' => StreamHandler::class,
        'with' => [
            'stream' => 'php://stdout',
        ],
    ],
];

我在这里有更多信息 - Laravel 5.6 - Write to the Console

【讨论】:

哇,这太棒了。正是我所希望的。谢谢! 这太棒了!您将如何以不同的颜色显示消息,例如打印 $this->info、$this->warning、$this->error 等时命令的工作方式?我想使用服务类中的 Log::info,所以我没有 $this->info 可用。 @thirtyish 你可以使用tap 选项和这个包来设置格式化程序github.com/bramus/monolog-colored-line-formatter/blob/master/… @MEE 谢谢。我已经很多年没有碰过那篇文章了,所以我会看看发生了什么。 @MEE 修复了它。谢谢你提醒我。【参考方案4】:

您必须配置 laravel 存储日志的位置。默认Log::info() 将日志放在日志文件而不是控制台中。你可以使用tail -f logpath查看日志。

【讨论】:

【参考方案5】:

你可以调用info()方法

   $this->info("Your Message");

【讨论】:

以上是关于如何在 Laravel 的控制台上打印消息?的主要内容,如果未能解决你的问题,请参考以下文章

如何启用 XMPPFramework 在控制台上打印原始 XML

如何在 xcode 控制台上查看 phonegap javascript 日志消息

如何将打印在控制台上的值存储为矢量?

如何打印在控制台上超过ULLONG_MAX的号码?

如何停止在火花控制台上显示 INFO 消息?

markdown [Laravel]如何修复控制台上找不到的CSRF令牌