zoukankan      html  css  js  c++  java
  • thinkPHP5 日志的写入

    版本新增功能
    5.0.16 增加文件日志自动清理功能支持
    5.0.13 增加单文件日志写入功能
    5.0.10 增加record_trace配置参数用于记录trace信息到日志
    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'],
    ],
    

    单文件日志

    在某些情况下,需要对日志记录进行分析和处理,那么开启单文件日志写入就会方便分析。

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

    开启后,日志文件不再区分日期文件写入,而是统一写入到single.log文件中。

    日志自动清理

    V5.0.16+版本开始,支持文件日志的自动清理功能,你可以设置

    'max_files'	=> 30
    

    则日志文件最多只会保留30个,超过会自动清理较早的日志文件,避免日志文件长期写入占满磁盘空间。

    开启自动清理功能后,不会生成日期子目录。

  • 相关阅读:
    http协议详解(经典版)
    Sql语句清理日志文件
    Case when用法
    Sql Server 语句美化工具,SQL Pretty Printer Add-In for SSMS
    Ext.Net保存前判断GridPanel中必填项是否为空
    JavaScript中判断对象的值是否为undefined、null
    Your project specifies TypeScriptToolsVersion 3.1, but a matching compiler was not found. The latest available TypeScript compiler will be used (3.3). To remove this warning, install the TypeScript 3.
    gist.github.com 被墙无法访问解决办法
    VSCode 多标签打开文件
    VSCode安装与配置Eslint
  • 原文地址:https://www.cnblogs.com/xu1115/p/11118664.html
Copyright © 2011-2022 走看看