1.
日志的处理工作是由系统自动进行的,在开启日志记录的情况下,会记录下允许的日志级别的所有日志信息。

其中,为了性能考虑,SQL日志级别必须在调试模式开启下有效,否则就不会记录。 系统的日志记录由核心的Think\Log类及其驱动完成,提供了多种方式记录了不同的级别的日志信息。

默认情况下只是在调试模式记录日志,要在部署模式开启日志记录,必须在配置中开启LOG_RECORD参数,以及可以在应用配置文件中配置需要记录的日志级别,例如:

'LOG_RECORD' => true, // 开启日志记录

'LOG_LEVEL' =>'EMERG,ALERT,CRIT,ERR', // 只记录EMERG ALERT CRIT ERR 错误

日志级别

ThinkPHP对系统的日志按照级别来分类,包括:

  • EMERG 严重错误,导致系统崩溃无法使用
  • ALERT 警戒性错误, 必须被立即修改的错误
  • CRIT 临界值错误, 超过临界值的错误
  • ERR 一般性错误
  • WARN 警告性错误, 需要发出警告的错误
  • NOTICE 通知,程序可以运行但是还不够完美的错误
  • INFO 信息,程序输出信息
  • DEBUG 调试,用于调试信息
  • SQL SQL语句,该级别只在调试模式开启时有效

 

2.thinkphp 项目日志输出类的目录为:TP/Lib/Core/Log.class.PHP

参考的thinkphp 开发手册如下:

通常日志文件的写入是自动完成的,如果我们需要在开发的过程中手动记录日志信息,可以使用Log类的方法来操作。日志文件的写入有两种方法:
一、使用Log::write 方法

Log::write 直接写入日志

用法

Log::write($message,$level=self::ERR,$type='',$destination='',$extra='')

参数

message(必须):要记录的日志信息,字符串

level(可选):要记录的日志级别,默认为ERR 错误

type(可选):日志记录方式,默认为空取LOG_TYPE配置

destination(可选):日志记录目标,默认为空自动生成或LOG_DEST配置

extra(可选):日志记录额外参数,默认为空取LOG_EXTRA配置

返回值

如:你要将$sql 变量写进日志: Log::write('调试的SQL:'.$SQL, Log::SQL);
表示用默认的日志记录方式记录调试SQL信息
二、使用Log::record和 Log::save方法

Log::record记录日志

用法

Log::record($message,$level=self::ERR,$record=false)

参数

message(必须):要记录的日志信息,字符串
level(可选):要记录的日志级别,默认为ERR 错误
record(可选):是否强制记录,默认为false表示判断LOG_LEVEL配置

返回值

Log::record方法必须结合Log::save方法才能完成日志记录,因为record方法只是把日志信息保存到内存,并没有真正写入日志,直到调用Log::save方法。

Log::save 保存记录的日志

用法

Log::save($type='',$destination='',$extra='')

参数

type(可选):日志记录方式,默认为空取LOG_TYPE配置
destination(可选):日志记录目标,默认为空自动生成或LOG_DEST配置
extra(可选):日志记录额外参数,默认为空取LOG_EXTRA配置

返回值

使用示例:

  1. Log::record('测试调试错误信息', Log::DEBUG);
  2.  Log::record('调试的SQL:'.$SQL, Log::SQL);
  3.  Log::save();

文章来源:刘俊涛的博客

地址:http://www.cnblogs.com/lovebing

欢迎关注,有问题一起学习欢迎留言、评论。

TP框架如何开启log日志的更多相关文章

  1. mysql中如何开启binlog?开启二进制日志文件?binary log?

    需求描述: 开启mysql的binlog即binary log日志功能,在此记录下. 版本描述: mysql版本:5.7.21-log 操作过程: 1.修改my.cnf并且将以下参数加入其中,重启my ...

  2. Spring框架之log日志的使用

    1.Spring框架也需要引入日志相关的jar包 * 在spring-framework-3.0.2.RELEASE-dependencies/org.apache.commons/com.sprin ...

  3. scrapy框架之log日志

    scrapy中的debug信息 在scrapy中设置log 1.在settings中设置log级别,在settings.py中添加一行: Scrapy提供5层logging级别: CRITICAL - ...

  4. Xposed框架Hook Android应用的所有类方法打印Log日志

    本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/80954759 在进行Android程序的逆向分析的时候,经常需要Android程 ...

  5. tp框架总体学习总结(一)

    一.TP框架的下载和安装 Tp框架下载网址:http://www.thinkphp.cn/ 在wamp的www目录下创建一个目录tpshop目录 1.  将下载好的包压缩后将文件包里的所有文件复制到创 ...

  6. 基于TP框架的ThinkCMF,控制器display方法源码分析

    昨天在写代码的时候,看见写了无数次的模版渲染方法:$this->display(),突然很想弄清楚它是如何实现的. 今天不忙,就分析了一下. class TestController exten ...

  7. tp框架集成支付宝,中转页变成gbk编码

    tp框架中集成支付宝的功能,将支付宝的demo例子存在到下图位置\Extend\Vendor\Alipay 生成支付订单 /** * 支付订单 */ public function pay() { h ...

  8. tp框架-----Model模型层

    1.Model模型层是用来做什么的呢? 主要是用来做操作数据库访问的.也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. 2.Model模型怎样使用呢? 要使用Model模型层访问数 ...

  9. SLF4J其实只是一个门面服务而已,他并不是真正的日志框架,真正的日志的输出相关的实现还是要依赖Log4j、logback等日志框架的。

    小结: 1.加层: 每一种日志框架都有自己单独的API,要使用对应的框架就要使用其对应的API,这就大大的增加应用程序代码对于日志框架的耦合性. 为了解决这个问题,就是在日志框架和应用程序之间架设一个 ...

随机推荐

  1. SSM框架开发web项目系列(三) MyBatis之resultMap及关联映射

    前言 在上篇MyBatis基础篇中我们独立使用MyBatis构建了一个简单的数据库访问程序,可以实现单表的基本增删改查等操作,通过该实例我们可以初步了解MyBatis操作数据库需要的一些组成部分(配置 ...

  2. SpringCloud高可用Eureka搭建

    网上很多博客写的都是在本地一台机器上面搭建的,我用两台机器来为大家搭建一个注册中心高可用集群 第一步:需要在每一台机器上面搭建一个注册中心. 第二步:编写第一台机器注册中心配置文件 第三步:编写第二台 ...

  3. 最短路算法之Dijkstra算法通俗解释

    Dijkstra算法 说明:求解从起点到任意点的最短距离,注意该算法应用于没有负边的图. 来,看图. 用邻接矩阵表示 int[][] m = { {0, 0, 0, 0, 0, 0}, {0, 0, ...

  4. 掌上快递 APP 项目之概述篇

    概述 学习Android开发也有一段时间了,利用业余时间独立制作的一款快递类APP软件.大概2个多星期吧,自己将其定位为"集快递信息追踪.附近快递点查询. 快递公司投诉功能为一体的便民生活类 ...

  5. 【Jsp】JSP自己定义标签与MODEL1、MODEL2标准

    在JSP2.0之后支持自己定义标签,如今一般都是jsp2.4的版本号了,所以无须考虑版本号的问题. 直接使用就能够了.尽管一般开发的过程中,非常少会自己定义JSP标签.可是通过一个JSP自己定义标签的 ...

  6. C++学习笔记24,方法重写与方法隐藏

    该博文仅用于交流学习.请慎用于不论什么商业用途.本博主保留对该博文的一切权利. 博主博客:http://blog.csdn.net/qq844352155 转载请注明出处: 方法重写.是指在子类中又一 ...

  7. 一段文字中的几个keyword显示高亮

    将一段文字中的几个keyword显示高亮 演示样例:将"我的愿望是当个绿巨人,所以我想让我的皮(derma)肤是绿色"中的"皮肤"显示绿色. <span ...

  8. 码农的奋斗之路 CTO说 读后感

    拜读了各位大神的分享,对CTO的职责有了进一步的认识. 什么是CTO? CTO需要具备哪些技能? CTO与管理 CTO的作用是什么? 如何体现CTO的价值? CTO撸不撸代码? 小结

  9. tomcat启动失败的一种可能性

    今天搭建一个新的项目,采用spring+hibernate框架,项目框架搭建完成以后,启动tomcat,报错,如下图. 第一反应是tomcat的问题,于是clean了tomcat,没用,再把tomca ...

  10. Linux常用目录结构

    此文引用自51CTO博客,博主snail_hf,原文地址<Linux系统目录详解(全而易懂)> 目录结构 / 根目录,处于Linux系统树形结构的最顶端,它是Linux文件系统的入口,所有 ...