php 项目中自定义日志方法
在现在项目中之前没有定义日志的方法,每次调试起来很麻烦,经常不能输出参数,只能用写日志的方法,一直用file_put_contents很烦躁,于是用了一点时间,写了这样一个方法:
<?php
/*
* 日志生成类
* write by vson
* time:2017-06-14
* for:record and check
* */
class logClass{
/*
* 清除一个月之前的日志
* */
protected function logDirClear($logDir = '/tmp/log'){
if(is_dir($logDir)){
$dirHandle = opendir($logDir);
while(($dirName = readdir($dirHandle)) != false){
$subDir = $logDir.'/'.$dirName;
if($dirName == '.' || $dirName == '..'){
continue;
}else{
$monthDate = date('Y-m-d', strtotime("- 30 day",time()));
if(strtotime($monthDate) > strtotime($dirName)){
if(is_dir($subDir)){
$this->logFileClear($subDir);
rmdir($subDir);
}
}
}
}
closedir($dirHandle);
}
}
protected function logFileClear($fileDir){
if(is_dir($fileDir)){
$fileHandle = opendir($fileDir);
while(($fileName = readdir($fileHandle)) != false){
$subDir = $fileDir.'/'.$fileName;
if($fileName == '.' || $fileName == '..'){
continue;
}else{
if(is_dir($subDir)){
$this->logFileClear($subDir);
rmdir($subDir);
}else{
unlink($subDir);
}
}
}
closedir($fileHandle);
}
}
/*
* 生成新日志
* */
public function logWrite($fileName, $user, $content){
$this->logDirClear();
$logDir = '/tmp/log';
$now = date('Y-m-d');
$nowDir = $logDir.'/'.$now;
if(!is_dir($nowDir)){mkdir($nowDir, 0777, true);
}
$fileDir = $nowDir.'/'.$fileName;
$fileContent = $user.'在'.date('Y-m-d H:i:s').'时操作,内容为:'.$content;
file_put_contents($fileDir, $fileContent."\n====================\n", FILE_APPEND);
} }
php 项目中自定义日志方法的更多相关文章
- 项目中常用js方法整理common.js
抽空把项目中常用js方法整理成了common.js,都是网上搜集而来的,大家一起分享吧. var h = {}; h.get = function (url, data, ok, error) { $ ...
- vue-cli+webpack在生成的项目中使用bootstrap方法(二)
vue-cli+webpack在生成的项目中使用bootstrap方法(一)中,是通过手动下载bootstrap库,然后手动添加到src/assets中,显然是过程太多. 当然是可以更省力些,可以通过 ...
- flask中自定义日志类
一:项目架构 二:自定义日志类 1. 建立log.conf的配置文件 log.conf [log] LOG_PATH = /log/ LOG_NAME = info.log 2. 定义日志类 LogC ...
- SLF4J 和 Logback 在 Maven 项目中的使用方法
原文:http://blog.csdn.net/llmmll08/article/details/70217120 本文介绍 SLF4J 和 Logback 在 Maven 项目中的用法,包括日志框架 ...
- webmagic 日志使用及maven项目中排除日志依赖
我用的Spring Boot maven构建的工程,默认引入了 <dependency> <groupId>org.springframework.boot</group ...
- OC中自定义init方法
---恢复内容开始--- 我们知道,在函数中实例化一个对象,大多数会同时进行初始化,如 Person *p =[ [Person alloc]init]; 此时已经进行了初始化,使用init方法,那么 ...
- IntelliJ 如何找到项目中 Deprecated 的方法
在一个项目中,如果我们标记了某些元素为 Deprecated 的话,如何让我们能够快速找到? 简单来说,你可以对项目进行 Code Inspection. 选择 Analyze > Inspec ...
- npm包管理工具在一般项目中的应用方法
最近自己在有时间,在通学一些知识点,记录一下,以便以后使用方面 当我们在做项目的时候,如果需要到包管理工具,那么我们一定会经历以下流程: 1.首先在官网下载node.js,然后默认安装到C盘 检查是否 ...
- shell脚本中自定义日志记录到文件
自定义日志函数和前期变量 # adirname - return absolute dirname of given file adirname() { odir=`pwd`; cd `dirname ...
随机推荐
- Weekly Contest 118
970. Powerful Integers Given two non-negative integers x and y, an integer is powerful if it is equa ...
- 1222: FJ的字符串 [水题]
1222: FJ的字符串 [水题] 时间限制: 1 Sec 内存限制: 128 MB 提交: 92 解决: 20 统计 题目描述 FJ在沙盘上写了这样一些字符串: A1 = “A” A2 = ...
- iis 重启命令
打开IIS配置窗口的CMD命令:开始---运行---CMD----输入inetmgr 直接使用CMD我们可以操作很多事情,比如启动IIS,重启IIS,停止IIS 重启IIS服务器,开始->运行 ...
- Ubuntu上使用systemd创建服务文件来启动和监视底层网络应用程序实现守护进程
在Linux上使用Nginx设置ASP.NET Core的托管环境,并部署到它 创建服务文件 创建服务定义文件: sudo vim /etc/systemd/system/kestrel-basic. ...
- springcloud微服务总结五 服务熔断
一:雪崩效应 如下图所示:A作为服务提供者,B为A的服务消费者,C和D是B的服务消费者.A不可用引起了B的不可用,并将不可用像滚雪球一样放大到C和D时,导致整个系统瘫痪,雪崩效应就形成了. 雪崩过程: ...
- Python之freshman07 面向对象编程jinjie
本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程 经典类vs新式类 把下面代码 ...
- 训练DCGAN(pytorch官网版本)
将pytorch官网的python代码当下来,然后下载好celeba数据集(百度网盘),在代码旁新建celeba文件夹,将解压后的img_align_celeba文件夹放进去,就可以运行代码了. 输出 ...
- Nginx负载均衡详解
upstream mysvr { server 192.168.10.121:3333; server 192.168.10.122:3333; } server { .... location ...
- org.hibernate.QueryException: Unable to resolve path [SecWilldosetdate.name],xxxxxxxx...异常处理
今天在写hql语句的时候出现了这个错误,然后一直运行到执行hql这儿就出错了.页面报500. 原hql如下: String hql = "from SecWilldosetdate wher ...
- CF :K 一个含n条边的带权无向连通图,q次查询,每次查询两点间的最短距离。
题意:给你一个含n条边的带权无向连通图,q次查询,每次查询两点间的最短距离. 思路:LCA+思维. 设a,b两点间的距离为f(a,b) 则f(a,b)=dis[a]+dis[b]-2*dis[lca( ...