PHP 记录错误日志

<?php

namespace Pharest\Register;

class Logger
{

    protected $date;

    protected $time;

    protected $path;

    /**
     * Logger constructor.
     *
     * @param \Pharest\Config $config
     */
    public function __construct(\Pharest\Config $config)
    {
        $this->path = $config->app->get('log');

        $this->date = date('Y-m-d');

        $this->time = date('H:i:s');
    }

    public function error()
    {
        if (!$this->path) {
            exit;
        }

        $_error = error_get_last();

        if (!empty($_error) and in_array($_error['type'], [1, 4, 16, 64, 256, 4096, E_ALL])) {

            $path = APP_ROOT . $this->path . 'error/';

            if (!is_dir($path)) {
                mkdir($path, 0777, true);
            }

            $file = $path . 'error-log-' . $this->date . '.txt';

            $message = $this->time . ' - ' . json_encode([
                    'type'    => $_error['type'],
                    'message' => strpos($_error['message'], "\nStack trace") === false ? $_error['message'] : substr($_error['message'], 0, strpos($_error['message'], "\nStack trace")),
                    'file'    => str_replace(APP_ROOT, '', $_error['file']),
                    'line'    => $_error['line']
                ], JSON_UNESCAPED_SLASHES) . "\n";

            file_put_contents($file, $message, FILE_APPEND);
        }

        exit;
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值