PHP创建日志记录(已封装)
1 <?php 2 3 class Logs{ 4 private $_filepath; //文件路径 5 private $_filename; //文件名 6 private $_filehandle; //文件引擎 7 8 9 public function Logs($dir = null,$filename = null){ 10 11 $this->_filepath = empty($dir) ? '': $dir; 12 $this->_filename = empty($filename) ? date('Y-m-d',time()).'.log' : $filename; 13 14 //创建路径 15 $path = $this->_createPath($this->_filepath,$this->_filename); 16 17 if(!$this->_isExist($path)){//如果日志目录不存在 18 19 if(!empty($this->_filepath)){ //如果路径不存在 20 21 if(!$this->_createDir($this->_filepath)){//创建路径 22 die("创建日志目录不成功"); 23 } 24 } 25 26 if(!$this->_createLogFile($path)){//创建日志 27 die("创建日志文件不成功"); 28 } 29 } 30 31 32 $path = $this->_createPath($this->_filepath,$this->_filename); 33 //创建日志文件 34 $this->_filehandle=fopen($path,"a+"); 35 } 36 37 38 public function setLog($log) //写日志 39 { 40 //写日志 41 $str = ""; 42 if(is_array($log)){ 43 foreach($log as $k => $v){ 44 $str .= $k." : ".$v."\n"; 45 } 46 }else{ 47 $str = $log."\n"; 48 } 49 50 51 if(!fwrite($this->_filehandle,$str)){//写日志 52 die("写日志错误"); 53 } 54 } 55 56 57 private function _isExist($path){ 58 return file_exists($path); 59 } 60 61 62 private function _createDir($dir){ 63 return is_dir($dir) or ($this->_createDir(dirname($dir)) and mkdir($dir, 0777)); 64 } 65 66 67 private function _createLogFile($path){ 68 $handle=fopen($path,"w"); // 69 fclose($handle); 70 return $this->_isExist($path); 71 } 72 73 74 private function _createPath($dir,$filename){ 75 if(empty($dir)){ 76 return $filename; 77 }else{ 78 return $dir."/".$filename; 79 } 80 } 81 82 83 function __destruct(){ 84 //关闭日志 85 fclose($this->_filehandle); 86 } 87 } 88 ?>
转载于:https://www.cnblogs.com/etodream/p/3937988.html
PHP创建日志记录(已封装)相关推荐
- keil debug如何在watch直接修改变量值_python日志记录系列教程,内置logging模块(一),直接使用logging模块的基础日志记录
前言:成熟的软件开发不可避免的要进行日志记录,python内置模块logging提供了强大的日志记录能力,本文将从多个角度,由浅入深的介绍logging的常见使用方法和一些基本概念,本此系列文章分为两 ...
- 如何在.NET中启用程序集绑定失败日志记录(Fusion)
如何在.NET中启用程序集绑定失败日志记录(Fusion)? #1楼 如果您已经启用了日志记录,并且在Windows 7 64位上仍然出现此错误,请在IIS 7.5中尝试: 创建一个新的应用程序池 转 ...
- springmvc+log4j操作日志记录,详细配置
没有接触过的,先了解一下:log4j教程 部分内容来:log4j教程 感谢! 需要导入包: log包:log4j-12.17.jar 第一步:web.xml配置 <!-- log4j配置,文件路 ...
- 数据库MySQL/mariadb知识点——日志记录(2)二进制日志
二进制日志 记录已提交事务导致数据改变或潜在导致数据改变的SQL语句,通过"重放"日志文件中的事件来生成数据副本,不依赖存储引擎类型. 开启二进制日志,默认是关闭的,二进制日志和数 ...
- 在.NET Core日志记录中使用Trace和TraceSource
目录 介绍 背景 使用代码 基本的 文件中配置 跟踪(Trace)和跟踪源(TraceSource) 内置跟踪侦听器 LoggerTraceListener Harmony中的Trace,TraceS ...
- 一文带你扫盲日志记录的基础知识
文章目录 一.日志记录入门 二.日志记录域 三.日志记录安全使用场景 四. 设计.实现和测试注意事项 五. 要记录的事件 六.事件属性 七.使用 OWASP 进行安全日志记录 监控应用程序基础结构的健 ...
- 如何使用Quartz Scheduler和日志记录创建Web应用程序
我有时会在Quartz Scheduler论坛中为用户提供帮助. 有时,有人会问他/她如何在Web应用程序中设置Quartz. 实际上,这是一件相当简单的事情. 该库已经带有一个ServletCont ...
- 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。
24-Jul-2022 17:18:15.259 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.s ...
- windows log日志分割_如何将日志记录到 Windows事件日志 中
每当出现一些未捕获异常时,操作系统都会将异常信息写入到 Windows 事件日志 中,可以通过 Windows 事件查看器 查看,如下图: 这篇文章将会讨论如何使用编程的方式将日志记录到 Window ...
最新文章
- 解析|2G~5G与未来天线技术!
- kafka副本注意点
- NgRx 里 first 和 take(1) 操作符的区别
- less,more,view一个文件时中文可以正常显示,可是VI却显示乱码呢?
- MyBatis(五)------MyBatis配置
- SQLMAP安装及使用教程
- centos 7 安装韩文字体
- 在RHEL6上针对rm命令做审计
- 原来这就是公文写作总结类模板和计划类模板
- hdu 6080 度度熊保护村庄(floydS使用技巧)
- 怎么取消两台计算机共享,小编教你两台电脑如何共享文件
- git使用命令行首次提交代码
- C语言经典面试题10道(七)
- 管人用人育人留人之道-海潮效应
- 【面试总结】涵盖1-3年Java程序员必须精通的面试技巧
- 阿里云的NoSQL存储服务OTS的应用分析
- resultful规范使用
- python整形怎么切片_遥感影像切分切片
- 移动端使用fiddler抓包步骤
- glusterfs 文件服务器 搭建
热门文章
- Python链接MySQL
- 对 makefile 中 .SECONDARY 的学习体会
- 算法导论Java实现-构建MaxHeap
- python selenium error “Geckodriver executable needs to be in PATH”
- 报表在vista和win7下无法浏览应用的解决办法
- 转	The connection to adb is down, and a severe error
- 给小孩发布一个有趣的网站 在线动物园
- [转载]python optionparser1
- 在Spring中采用声明式方法对Hibernate和JDBC进行统一的事务配置(AOP)
- 如何为ccflow工作流引擎增加一个优先级PRI?