ThinkPHP6.0 如何使用日志

日志遵循PSR-3规范,除非是实时写入的日志,其它日志都是在当前请求结束的时候统一写入的 所以不要在日志写入之后使用exit等中断操作会导致日志写入失败。

 一.写入日志的几种方法


        1.助手函数 trace

/**
 * 记录日志信息
 * @param mixed  $log   log信息 支持字符串和数组
 * @param string $level 日志级别(error/info/notice)
 * @return array|void
 */
trace($log, $level); // 用法

 Notice:文件路径 访问的哪个模块下+log+月份+日期.log。

例如:

url: http://localhost/home/log/index

文件地址:/runtime/home/log/202208/24.log

      2.Log 类

俩种方法,都是系统在运行结束后自动调用Log::save() 统一进行日志信息写入

方法

描述

use think\facade\Log;

Log::record($msg, $level)

记录日志信息到内存,日志级别level 不写。默认info

Log::write($msg, $level)

实时写入一条日志信息

不同日志警告级别的方法:

Log::error('错误信息');

error

Log::info('日志信息');

info

二.如何将需要记录的日志单独记录到一个日志中

有时候需要将具体情况的日志统一记录到单一的类目中方便查看。比如支付日志,回调日志。可以使用通道解决方法。

1.日志通道channel

将配置不同的日志通道,将不同的日志记录到不同的日志中

使用方法:

Log::channel('pay')->info('支付日志');

配置日志文件config/log.php,加入不同的配置:

return [
    // 默认日志记录通道
    'default'      => env('log.channel', 'file'),
    // 日志记录级别
    'level'        => [],
    // 日志类型记录的通道 ['error'=>'email',...]
    'type_channel' => [],
    // 关闭全局日志写入
    'close'        => false,
    // 全局日志处理 支持闭包
    'processor'    => null,

    // 日志通道列表
    'channels'     => [
        'file' => [
            // 日志记录方式
            'type'           => 'File',
            // 日志保存目录
            'path'           => '',
            // 单文件日志写入
            'single'         => false,
            // 独立日志级别
            'apart_level'    => [],
            // 最大日志文件数量
            'max_files'      => 0,
            // 使用JSON格式记录
            'json'           => false,
            // 日志处理
            'processor'      => null,
            // 关闭通道日志写入
            'close'          => false,
            // 日志输出格式化
            'format'         => '[%s][%s] %s',
            // 是否实时写入
            'realtime_write' => false,
        ],
        // 其它日志通道配置
        'pay' => [
            'type' => 'File',
            'path' => app()->getRootPath().'runtime/pay', // 重点这个路径要写
            'time_format' => 'Y-m-d H:i:s',
            'format' => '[%s][%s]:%s'
        ]
    ],
];

三.额外补充

1.日志时间格式化

 'time_format'   =>    'Y-m-d H:i:s',

四.联想到的东西

1.依赖注入

Facade 门面设计模式,为容器提交了一种静态调用的方法。静态调用非静态方法。让调用日志只要Log::write()

container 容器类为 facade提供支持

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值