ThinkPHP5.1 框架下自带日志功能详解及远程调试

日志配置

    use think\facade\Log;

    Log::init([

        // 日志记录方式,支持 file socket 或者自定义驱动类
        'type'  =>  'File',

        //日志保存目录
        'path'  =>  "../logs/$dir/",

        //单个日志文件的大小限制,超过后会自动记录到第二个文件
        'file_size'     =>2097152,

        //日志的时间格式,与date函数设置一致,可以自定义时间格式,默认是` c `
        'time_format'   =>'YmdHis c',

        //是否用json格式写入到日志文件
        'json'  =>  false,

    ]);

日志的配置文件是配置文件目录下的log.php文件,如果需要针对不同的模块设置不同的日志类型,则需要在模块配置目录下的log.php中配置,系统在进行日志写入之前会读取该配置文件进行初始化。

日志配置参数根据不同的日志类型有所区别,内置的日志类型包括:file、socket,日志类型使用type参数配置即可。

日志驱动

    驱动通用

参数        描述
type        日志类型(或者驱动类名称)
level       允许记录的日志级别
allow_key   允许日志写入的授权key
close       是否关闭日志写入(V5.1.8+)

   File 驱动

参数        描述
file_size       日志文件大小限制(超出会生成多个文件)
path            日志存储路径
apart_level     独立记录的日志级别
time_format     时间记录格式,与date函数设置一致,如 'YmdHis c',可以自定义时间格式,默认是'c'
single          是否单一文件日志
max_files       最大日志文件数(超过自动清理 V5.1.6+)
json             是否用json格式写入到日志文件

   Socket 驱动

        Socket驱动 需要中间服务作为转发,大概的逻辑是通过向 localhost的某个端口(默认1116)进行 资源传输,然后通过 中间服务 发送给客户端

        本质上就是 CURL+WebSocket,TP框架的逻辑可以查看 Socket.php。这里推荐使用 socketlog,web开发的时候 可以配置 chrome的 socketlog插件 一起使用。

        tp-config

    Log::init([
        'type'  =>  'Socket'
    ]);

        SocketLog-client

            安装 chrome的 socketlog插件

            chrome浏览器 翻墙访问: https://chrome.google.com/webstore/detail/socketlog/apkmbfpihjhongonfcgdagliaglghcod 进行安装

            配置 socketlog插件,如图

                

        SocketLog-server

            a:

            Centos 7安装npm,运行以下命令(已安装的可跳过)

            运行命令:curl -sL https://rpm.nodesource.com/setup_13.x | bash -和yum install -y nodejs

            b:

            运行 npm install -g socketlog-server直接安装。

            运行 socketlog-server 启动服务。

            将会在本地起一个websocket服务 ,监听端口是1229 。

            socketlog-server服务器使用到1229和1116端口,若服务器开启了防火墙,需要开放这两个端口

        效果如下:

            server

            client


 

日志写入

版本新增功能
5.0.4命令行模式下日志自动定时写入
5.0.4debug日志类型仅用于调试模式记录

手动记录

一般情况下,系统的日志记录是自动的,无需手动记录,但是某些时候也需要手动记录日志信息,Log类提供了3个方法用于记录日志。

方法描述
Log::record()记录日志信息到内存
Log::save()把保存在内存中的日志信息(用指定的记录方式)写入
Log::write()实时写入一条日志信息

由于系统在请求结束后会自动调用Log::save方法,所以通常,你只需要调用Log::record记录日志信息即可。

record方法用法如下:

Log::record('测试日志信息');

默认的话记录的日志级别是INFO,也可以指定日志级别:

Log::record('测试日志信息,这是警告级别','notice');

采用record方法记录的日志信息不是实时保存的,如果需要实时记录的话,可以采用write方法,例如:

Log::write('测试日志信息,这是警告级别,并且实时写入','notice');

 日志级别

ThinkPHP对系统的日志按照级别来分类,并且这个日志级别完全可以自己定义,系统内部使用的级别包括:

  • log 常规日志,用于记录日志
  • error 错误,一般会导致程序的终止
  • notice 警告,程序可以运行但是还不够完美的错误
  • info 信息,程序输出信息
  • debug 调试,用于调试信息
  • sql SQL语句,用于SQL记录,只在数据库的调试模式开启时有效

系统提供了不同日志级别的快速记录方法,例如:

Log::error('错误信息');
Log::info('日志信息');
// 和下面的用法等效
Log::record('错误信息','error');
Log::record('日志信息','info');

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
thinkphp5.1完全开发手册.pdf是一本全面介绍了ThinkPHP 5.1框架开发的手册。ThinkPHP是一款相当流行的PHP开源框架,它具有良好的扩展性和易用性,适用于各种规模的Web应用开发。 这本开发手册详细介绍了ThinkPHP 5.1框架的使用方法和各种功能。首先,手册介绍了如何安装和配置ThinkPHP框架,包括服务器环境配置和数据库连接设置。然后,手册详细讲解了ThinkPHP框架的MVC架构,包括控制器、模型和视图的使用方法和关系。 接下来,手册针对常用的功能模块进行了深入的讲解。比如,数据库操作模块介绍了如何使用ThinkPHP的ORM功能进行数据库的增删改查操作。表单验证模块介绍了如何使用ThinkPHP的验证器进行数据验证。文件上传、缓存、日志记录等功能由浅入深地讲解了使用方法。 此外,手册还介绍了ThinkPHP框架的路由、中间件、事件和插件等高级功能,以及如何进行单元测试和异常处理。 这本手册的优点是系统完整地介绍了ThinkPHP 5.1框架的各种功能和用法,对于初学者来说非常友好。而对于有一定经验的开发者来说,手册也提供了足够的细节和实例,帮助他们了解和应用框架更高级的特性。 总而言之,thinkphp5.1完全开发手册.pdf是一本全面详细的ThinkPHP 5.1框架开发指南,既适合初学者入门,又适合有经验的开发者查漏补缺,是学习和使用ThinkPHP框架的重要参考资料。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值