Laravel写日志

  • 在项目根目录(app同级)新建libs目录
    新建Blog.php文件(一个日志类)
<?php
use Monolog\Logger;
use Monolog\Handler\RotatingFileHandler;
use Monolog\Formatter\LineFormatter;

class BLog
{
    const LOG_EMERGENCY = 'EMERGENCY';  //紧急状况,比如系统挂掉
    const LOG_ALERT     = 'ALERT';      //需要立即采取行动的问题,比如整站宕掉,数据库异常等,
    const LOG_CRITICAL  = 'CRITICAL';   //严重问题,比如:应用组件无效,意料之外的异常
    const LOG_ERROR     = 'ERROR';      //运行时错误,不需要立即处理但需要被记录和监控
    const LOG_WARNING   = 'WARNING';    //警告但不是错误,比如使用了被废弃的API
    const LOG_NOTICE    = 'NOTICE';     //普通但值得注意的事件
    const LOG_INFO      = 'INFO';       //感兴趣的事件,比如登录、退出
    const LOG_DEBUG     = 'DEBUG';      //详细的调试信息
    const LOG_DATABASE  = 'DATABASE';   //数据库查询
    const LOG_PAY       = 'PAY';        //充值查询
    const LOG_VIDEO     = 'VIDEO';      //充值查询

    private static $loggers = array();

    // 获取一个实例
    public static function getLogger($type = self::LOG_ERROR, $day = 30)
    {
        if (empty(self::$loggers[$type])) {
            self::$loggers[$type] = new Logger($type);
            $handler = (new RotatingFileHandler(storage_path("logs/".$type.".log"), $day))
            ->setFormatter(new LineFormatter(null, null, true, true));
            self::$loggers[$type]->pushHandler($handler);
        }

        $log = self::$loggers[$type];
        return $log;
    }

    public static function write($str,$name=BLog::LOG_NOTICE,$day=30){
        if(!is_string($str)) $str = json_encode($str);
        return \BLog::getLogger($name)->info($str);
    }

    public static function db($str){
      return self::write($str,BLog::LOG_DATABASE,5);
    }
    public static function debug($str){
      return self::write($str,BLog::LOG_DEBUG);
    }
    public static function info($str){
      return self::write($str,BLog::LOG_INFO);
    }
    public static function error($str){
      return self::write($str,BLog::LOG_ERROR);
    }
    public static function alert($str){
      return self::write($str,BLog::LOG_ALERT);
    }
    public static function emergency($str){
      return self::write($str,BLog::LOG_EMERGENCY);
    }
    public static function critical($str){
      return self::write($str,BLog::LOG_CRITICAL);
    }
    public static function warning($str){
      return self::write($str,BLog::LOG_WARNING);
    }
    public static function notice($str){
        return self::write($str,BLog::LOG_NOTICE);
    }
    public static function pay($str){
      return self::write($str,BLog::LOG_PAY);
    }
    public static function video($str){
      return self::write($str,BLog::LOG_VIDEO,5);
    }
}
  • 在composer.json里面加上日志类的自动加载路径
"autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "./libs/Func.php",
            "./libs/BLog.php" // 后面不能有','
        ]
    },
  • 执行dump-autoload即可

  • 使用日志类打印日志

\BLog::pay($rq->all());

OK~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值