文档章节

TP的php日志记录类解析

熊猫88
 熊猫88
发布于 2015/12/07 22:52
字数 608
阅读 1327
收藏 1

 PHP运行的时候缺少一个后台,不能直接从后台看到日志的各种运行信息。但是在正常写代码里,我们又需要不断的获取到运行的信息。在php的信息记录函数里面,内置了一个error_log的函数用来记录错误消息提示的函数。
  error_log的主要用法:
  error_log(error,type,destination,headers)
  一般为了实用,我们基本指定type=3 指定输入运行错误信息到一个文本地方,这样我们可以一直查看日志的变化(其余的情况type=1或者type=4用的很少)
  如下列一段代码,在当前运行的路径里打印日志(在记事本里\n是换行的意思 __DIR__是指和当前文件运行的同一个目录)
  error_log("test\n",3,__DIR__.'\log.txt');

  下面解析TP的日志class Log类
  总共有(都是static类,调用的时候都可以直接用Log::init这种形式进行调用)
  init(默认情况下进行调用,初始化文件类,因为储存的目录是Runtime目录)
  record(记录日志 并且会过滤未经设置的级别,不强制记录错误的情况下,只会记录设置了的错误记录,会将错误全部储存在一个static  protected  $log =array()里面)
  save(日志保存储存到了log里面的日志,在整个程序运行完后最后用save 就可以一次性将整个程序一次运行的日志记录到文本里面,一般的情况下是系统本身进行调用
  write(直接将错误写到日志里面进行调用,常用于调试的时候,进行观察使用)
  四种方法(这里没有涉及到删除日志,所以运行一段时间后,需要自己把日志进行删除掉,TP会随着运行时间的增加,整个系统会越来越庞大)

<?php
//一个简单的日志记录类,一般日志只生成,很少需要代码删除
class   Log  {
 
 static  protected  $logs =array();
//系统运行的时候,需要记录,先将所有需要记录的日志写入一个 //数组,最后调用save方法,写入日志
 static  public function record($message) {
   self::$logs[]=$message;
 }


 static public  function  write($message,$destination) {
  error_log($message,3,$destination); 
 }


static  public  function save($destination) {
error_log(self::$logs,3,$destination);
}
}


Log::write("test",__DIR__."//".date("Y_m_d").".txt");

?>


© 著作权归作者所有

熊猫88
粉丝 18
博文 76
码字总数 65366
作品 0
程序员
私信 提问
ThinkPHP开发必备composer扩展包

本文假设读者有能力正常使用composer 环境隔离 dotenv 真实世界的开发往往是这样, 多个团队成员共同开发, 线上线下的代码通过版本控制系统保持一致.但你无法保证也没理由要求所有机器上的应用...

朱__朱
2015/09/14
3.7K
6
Thinkphp修改一句代码,使得foreach标签支持对象,增加变量[数组对象]混合解析法!

今天修补一个老项目中,使用的是TP框架,到视图区发现对象无法遍历输出。真够郁闷的,对于不喜欢数组喜欢变量的强迫症来说就得琢磨琢磨。搞了半天,搜了半天没找到满意的结果。之后顺道去了下...

Eller
2016/01/22
935
2
TP5中使用极光推送3.5.12

此前的文章中记录过在ThinkPHP3.2.3中使用极光推送的。 项目新使用了TP5的框架,遂就如此照搬迁移过来了。 先看TP5的目录架构说明: project 应用部署目录├─application 应用目录(可设置)...

老K8
2017/06/21
0
0
PHP 命名空间 namespace / 类别名 use / 框架自动载入 机理的

相比 PHP5.2 版本 PHP5.3 新增了三大主要新特性 命名空间 延迟静态绑定 lambda匿名函数 命名空间的出现也使PHP可以更加合理的组织项目结构,同时通过命名空间和自动载入机制一大批 PHP 的 MV...

big_cat
2016/02/02
6.1K
1
如何让php自动进行二级域名泛解析

最近,受朋友委托,帮忙写一套多用户博客系统,要求每一个注册用户根据会员名自动生成二级域名指向,比如:你注册的用户名是:hengbo,主站域名:cycf.org.cn,那这个用户的博客地址是:hengbo.cycf.or...

蜗牛奔跑
2015/11/02
4.1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Security 自定义登录认证(二)

一、前言 本篇文章将讲述Spring Security自定义登录认证校验用户名、密码,自定义密码加密方式,以及在前后端分离的情况下认证失败或成功处理返回json格式数据 温馨小提示:Spring Security...

郑清
14分钟前
0
0
php yield关键字以及协程的实现

php的yield是在php5.5版本就出来了,而在初级php界却很少有人提起,我就说说个人对php yield的理解 Iterator接口 在php中,除了数组,对象可以被foreach遍历之外,还有另外一种特殊对象,也就是继承...

冻结not
27分钟前
0
0
servlet请求和响应的过程

本文转载于:专业的前端网站➥servlet请求和响应的过程 1.加载 Servlet类被加载到Java虚拟机中,并且实例化。在这个过程中,web容器(例如tomcat)会调用Servlet类的公开无参构造函数,产生一...

前端老手
27分钟前
2
0
golang 1.13 errors 包来了,不用写“err 气功波”代码

引 这篇是对 errors 包 的姿势挖掘 气功波错误代码 从 http.Get()返回的错误 判断 syscall.ECONNREFUSED 错误.以前要对 go 标准库 error 结构有点熟悉,才能写出下面的代码 func CmdErr(err ...

guonaihong
31分钟前
20
0
喜玛拉雅已听书单

时间倒序排 书名 作者 状态 唐砖 孑与2 进行中 死灵之书(克苏鲁神话合集) 阿卜杜拉·阿尔哈萨德 进行中 赡养人类 刘慈欣 完结 赡养上帝 刘慈欣 完结 中国太阳 刘慈欣 完结 中国太阳 刘慈欣...

Alex_Java
32分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部