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

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

【问题讨论】:

标签: php laravel logging


【解决方案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");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-18
        相关资源
        最近更新 更多