前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TP6.0 自定义日志驱动

TP6.0 自定义日志驱动

作者头像
很酷的站长
发布2023-01-16 10:02:15
7890
发布2023-01-16 10:02:15
举报
文章被收录于专栏:站长的编程笔记
1. 新增日志通道配置

代码语言:javascript
复制
// 其它日志通道配置
'log' => [
    // 日志记录方式
    'type'           => app\driver\Log::class,
    // 日志保存目录
    'path'           => app()->getRootPath() . 'log',
],
2. 自定义日志驱动类

自定义日志驱动,需要实现 think\contract\LogHandlerInterface 接口

参考TP6.0官方文档完全开发手册 : https://www.kancloud.cn/manual/thinkphp6_0/1037616#_377

代码语言:javascript
复制
interface LogHandlerInterface
{
    /**
     * 日志写入接口
     * @access public
     * @param  array $log 日志信息
     * @return bool
     */
    public function save(array $log): bool;
}
代码语言:javascript
复制
<?php
declare (strict_types = 1);
namespace app\driver;
use think\facade\Log as LogFacade;
use think\contract\LogHandlerInterface;
/**
 * 自定义日志驱动
 */
class Log implements LogHandlerInterface
{
    /**
     * 构造方法
     */
    public function __construct()
    {
        // 获取日志通道配置信息
        $this->config = LogFacade::getChannelConfig('log');
    }
    /**
     * 保存日志
     * @param array $data
     */
    public function save(array $data): bool
    {
        foreach ($data as $type => $item ) {
            foreach ( $item as $value ) {
                $this->write($type, ['type' => $type,'value' => $value]);
            }            
        }
        return true;
    }
    /**
     * 执行写入文件
     * @param [type] $type
     * @param [type] $data
     * @return void
     */
    public function write($type, $data)
    {
        $path = implode('/', [$this->config['path'], $type . '.log']);
        if ( ! file_exists(dirname($path)) ) mkdir(dirname($path), 0777, true);
        $content = '------------ ' . date('Y-m-d H:i:s') . ' ------------' . PHP_EOL . PHP_EOL . var_export($data, true) . PHP_EOL . PHP_EOL;
        file_put_contents($path, $content, FILE_APPEND);
    }
}
3. 写入日志

代码语言:javascript
复制
use think\facade\Log;
Log::channel('log')->record('测试日志信息');
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 新增日志通道配置
  • 2. 自定义日志驱动类
  • 3. 写入日志
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档