使用 `PHP artisan tail` 来实时查看 Laravel 应用程序的 Log

说明

php artisan tail 命令可用来查看实时的程序运行 log, 在 debug 模式关闭的情况下 ( 如: 生产环境 ), 尤其有用.

使用

开发使用

默认情况下 tail 只是针对本地的代码

php artisan tail

开发的时候, 还可以打开 SQL 查询语句的 LOG, 配合 php artisan tail 一起使用, 对 SQL 进行监控和调优.

app/filters.php 里面加上

Event::listen('illuminate.query', function($query, $bindings, $time, $name)
{
    $data = compact('bindings', 'time', 'name');

    // Format binding data for sql insertion
    foreach ($bindings as $i => $binding)
    {
        if ($binding instanceof \DateTime)
        {
            $bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
        }
        else if (is_string($binding))
        {
            $bindings[$i] = "'$binding'";
        }
    }

    // Insert bindings into query
    $query = str_replace(array('%', '?'), array('%%', '%s'), $query);
    $query = vsprintf($query, $bindings);

    Log::info($query, $data);
});

生产环境下的 Log

接下来我们做些配置, 查看生产环境下的 Log .

修改app/config/remote.php 文件

'connections' => array(
    'production' => array(
        'host'      => '117.111.111.111', // 
        'username'  => 'root',
        'password'  => '',
        'key'       => '/Users/username/.ssh/id_rsa',
        'keyphrase' => '',
        'root'      => '/var/webroot',
    ),
),

服务器验证可以选择 用户名密码 方式, 也可以设置 Key.

配置完成后调用:

php artisan tail production --path=/var/www/omapi/app/storage/logs/fpm-fcgi-2014-12-12.log --env=local

就可以实时查看 Log 输出了:

file

查看支持的参数

php artisan help tail
摈弃世俗浮躁,追求技术精湛
本帖已被设为精华帖!
Summer
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 11
Jourdon

这是哪个版本。5.1可以用吗。

6年前 评论

@Jourdon 这篇文章发布于2014年, 5.1应该不能用

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!