zoukankan      html  css  js  c++  java
  • tp5 日志管理

    日志驱动

    日志可以通过驱动支持不同的方式写入,默认日志会记录到文件中,系统已经内置的写入驱动包括 FileSocket,如果要临时关闭日志写入,可以设置日志类型为Test即可,例如:

    'log'   => [
        // 可以临时关闭日志写入
        'type'  => 'test',
    ],
    

    File驱动

    日志的记录方式默认是File方式,可以通过驱动的方式来扩展支持更多的记录方式。

    记录方式由log.type参数配置,例如:

    'log'   => [
        // 日志记录方式,支持 file socket
        'type' => 'File',
        //日志保存目录
        'path' => LOG_PATH,
        //单个日志文件的大小限制,超过后会自动记录到第二个文件
        'file_size'     =>2097152,
        //日志的时间格式,默认是` c `
        'time_format'   =>'c'
    ],
    

    为了避免同一个目录下面的日志文件过多的性能问题,file方式记录的日志文件会自动生成日期子目录。

    Scoket驱动

    Socket驱动配置,具体参考后面的远程调试部分。

    其他驱动

    thinkphp5.0支持SAE驱动的扩展,具体参考“SAE”章节

    每个日志记录方式需要对应一个日志驱动文件,例如File方式记录,对应的驱动文件是library/think/log/driver/File.php

    关闭日志

    系统并未提供关闭日志的方法,但有两种方式可以关闭日志的写入,第一种方式是设置日志类型为test,即可不写入任何日志。第二种方式是后面会提到的设置日志记录级别。

     

    日志写入

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

    手动记录

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

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

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

    record方法用法如下:

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

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

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

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

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

    V5.0.4+版本开始,为避免内容溢出,在命令行下面执行的话 日志信息会定时自动写入。

    日志级别

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

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

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

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

    还封装了一个助手函数用于日志记录,例如:

    trace('错误信息','error');
    trace('日志信息','info');
    

    也支持指定级别日志的输入,需要配置信息:

    'log'   => [
        'type'  => 'File',
        // 日志记录级别,使用数组表示
        'level' => ['error'],
    ],

     

  • 相关阅读:
    NPOI 菜鸟实践行之根据指定的模板生成Excel 2003格式的文件 (一)
    python循环字典
    对字典中找出最大的值
    通用解决方案:解决NHibernate SELECT 多表查询结果List绑定控件显示问题。
    读取Excel。。。
    哈,申请成功了。
    SharePoint 使用命令行备份过程中中断导致站点没有权限更改问题
    反射
    SharePoint 自定义主机标头与本地计算机名称不匹配,验证失败
    产生一个int数组,长度为100,并向其中随机插入1100,并且不能重复。自己写的算法
  • 原文地址:https://www.cnblogs.com/q1104460935/p/7089104.html
Copyright © 2011-2022 走看看