php log类
个人抽离出来一个超级简易但是实用的代码段
public static function WriteLog($msg,$module = null,$logLevel = "DEBUG")
{
$filepath = $_SESSION["APP_ROOT"]."/log/";
if(!is_dir($filepath)) mkdir($filepath,'0777');
$MyLogFile = @fopen($filepath.date("Y-m-d").".txt",'a+'); $time = date("Y-m-d H:i:s");
if(isset($module)){$module = sprintf("\r\n归属模块:".$module."\r\n");}
$logLine = "\r\n------------------------------- $time -------------------------------\r\n";
$logLine .= $module;
$logLine .= "\r\n异常信息:$msg\r\n";
$logLine .= "\r\n错误等级:$logLevel\r\n";
fwrite($MyLogFile,$logLine);
}
网上拿下来的:
<?php
ini_set('date.timezone','Asia/Shanghai');
/**
* PHP log 类
*/
class mylog
{
private $LogFile;
private $logLevel;
const DEBUG = 100;
const INFO = 75;
const NOTICE = 50;
const WARNING =25;
const ERROR = 10;
const CRITICAL = 5;
private function __construct()
{
$this->logLevel = 100;
$filepath = $_SESSION["APP_ROOT"]."/log/";
$filename = date("Y-m-d").".txt";
if(!is_dir($filepath)) mkdir($filepath,'0777');
$this->LogFile = @fopen($filepath.$filename,'a+');
}
public static function getInstance()
{
static $obj;
if(!isset($obj)){
$obj = new mylog();
}
return $obj;
}
public static function WriteLog($msg,$module = null,$logLevel = "DEBUG")
{
$filepath = $_SESSION["APP_ROOT"]."/log/";
if(!is_dir($filepath)) mkdir($filepath,'0777');
$MyLogFile = @fopen($filepath.date("Y-m-d").".txt",'a+');
$time = date("Y-m-d H:i:s");
if(isset($module)){$module = sprintf("\r\n归属模块:".$module."\r\n");}
$logLine = "\r\n------------------------------- $time -------------------------------\r\n";
$logLine .= $module;
$logLine .= "\r\n异常信息:$msg\r\n";
$logLine .= "\r\n错误等级:$logLevel\r\n";
fwrite($MyLogFile,$logLine);
}
public function LogMessage($msg,$module = null,$logLevel = mylog::DEBUG)
{
$time = date("Y-m-d H:i:s");
$strLogLevel = $this->levelToString($logLevel);
if(isset($module)){$module = sprintf("\r\n归属模块:".$module."\r\n");}
$logLine = "\r\n------------------------------- $time -------------------------------\r\n";
$logLine .= $module;
$logLine .= "\r\n错误信息:$msg\r\n";
$logLine .= "\r\n错误等级:$strLogLevel\r\n";
fwrite($this->LogFile,$logLine);
}
public function levelToString($logLevel)
{
$ret = '[unknow]';
switch ($logLevel){
case mylog::DEBUG:
$ret = 'DEBUG';
break;
case mylog::INFO:
$ret = 'INFO';
break;
case mylog::NOTICE:
$ret = 'NOTICE';
break;
case mylog::WARNING:
$ret = 'WARNING';
break;
case mylog::ERROR:
$ret = 'ERROR';
break;
case mylog::CRITICAL:
$ret = 'CRITICAL';
break;
}
return $ret;
}
}
?>
<?php
// include $_SESSION["APP_ROOT"].'/Lib/Class/Log.class.php';
// $logIns = LOG::getInstance();
// $logIns->LogMessage("测试一下");
//或者
// mylog::WriteLog("可以了");
?>
php log类的更多相关文章
- VC++ 一个简单的Log类
在软件开发中,为程序建立Log日志是很必要的,它可以记录程序运行的状态以及出错信息,方便维护和调试. 下面实现了一个简单的Log类,使用非常简单,仅供参考. // CLogHelper.h : hea ...
- android中Log类的封装
1.为了方便的使用Log打印日志,以及后续方便撤销日志打印,所以对Log类进行封装是一件好事. package market.phone; import android.util.Log; /** * ...
- Timber(对Log类封装的一个工具)
Timber(对Log类封装的一个工具) https://blog.csdn.net/hzl9966/article/details/51314137 https://www.jianshu.com/ ...
- Android Log类基本用法
Log类介绍: API for sending log output.Generally, use the Log.v() Log.d() Log.i() Log.w() and Log.e() me ...
- python+selenium之自定义封装一个简单的Log类
python+selenium之自定义封装一个简单的Log类 一. 问题分析: 我们需要封装一个简单的日志类,主要有以下内容: 1. 生成的日志文件格式是 年月日时分秒.log 2. 生成的xxx.l ...
- Python+Selenium中级篇之8-Python自定义封装一个简单的Log类《转载》
Python+Selenium中级篇之8-Python自定义封装一个简单的Log类: https://blog.csdn.net/u011541946/article/details/70198676
- Android学习笔记Log类输出日志信息
Log类提供的方法 代码示例 .. Log.e(TAG,"[错误信息]"); Log.w(TAG,"[警告信息]"); Log.i(TAG,"[普通信 ...
- C++记录debug信息的log类
取自:http://www.viksoe.dk/code/all_mfc.htm,里面有各种MFC常用的类 // LogFile.h: interface for the CLogFile class ...
- .net 创建属于自己的log类
实习到现在已经接近三个月了,由于是校企联合培养计划,所以没有工资,所幸公司对于我们这些实习生并没有什么要求,刚开始我还觉得要做点什么才能学得快,可是到了后来,发现公司安排给我们的任务并不紧要,也不算太 ...
随机推荐
- Discuz常见小问题-修改了模块,如何重新移动原有模块的帖子
如果还能找到这个帖子(比如用搜索关键字的方法,我们看到他现在已经在CodeSys控制器的目录下,可以点击那个CodeSys控制器的超链接看到里面所有帖子),打开这个帖子之后可以点击移动,然后选择新的目 ...
- 使用第三方控件DotNetBar来美化程序
VS的控件确实有点丑陋,需要美化一下.我最先接触的就是DotNetBar,一直用它,一般都还稳定.下面简单地讲解一下使用方法 1. 下载破解版DotNetBar 10版本:http://www.cr1 ...
- java实现内部排序算法
冒泡排序 public class BubbleSort{ public static int[] asc(int[] a){ int item; for (int i = 0; i < a.l ...
- php之快速入门学习-7(运算符)
PHP 运算符 本章节我们将讨论 PHP 中不同运算符的应用. 在 PHP 中,赋值运算符 = 用于给变量赋值. 在 PHP 中,算术运算符 + 用于把值加在一起. PHP 算术运算符 运算符 名称 ...
- promise 承诺
概念 ES6 原生提供了 Promise 对象. 所谓 Promise,就是一个对象,用来传递异步操作的消息.它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件提供统一的 API, ...
- vue 渲染流程
1.DOM 节点树 高效的更新所有这些节点会是比较困难的,因为原生的DOM节点属性很多,渲染性能差. 2.虚拟 DOM “虚拟 DOM”是我们对由 Vue 组件树建立起来的整个 VNode 树的称呼. ...
- js 动画性能分析 transfrom
1.动画实现代码 (1)使用定位实现: <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo ...
- Java程序猿学习C++之数组和动态数组
数组: #include <iostream> using namespace std; //模板函数 template <class T> void dump(T val) ...
- 通过jaxws-ri创建webservice服务端和客户端
1. 获得开发包 当然是到 SUN 的开发网站下载 JAX-WS RI,或者下载我的网盘备份 ,下载下来的只是一个jar包,参考官网上的方法在命令行调用:java -jar JAXWS2.1.2-20 ...
- dyld: Library not loaded: @rpath/XCTest.framework/XCTest Referenced from: /private/var/mobile/Conta
dyld: Library not loaded: @rpath/XCTest.framework/XCTest Referenced from: /private/var/mobile/Cont ...