php日志操作类,php日志类

摘自微信支付DEMO

使用方法<?php

require 'log.php';

$logHandler= new CLogFileHandler(date('Y-m-d').'.log');//文件路径

$log = Log::Init($logHandler, 15);

$log->DEBUG('123');

//以下为日志

interface ILogHandler

{

public function write($msg);

}

class CLogFileHandler implements ILogHandler

{

private $handle = null;

public function __construct($file = '')

{

$this->handle = fopen($file,'a');

}

public function write($msg)

{

fwrite($this->handle, $msg, 4096);

}

public function __destruct()

{

fclose($this->handle);

}

}

class Log

{

private $handler = null;

private $level = 15;

private static $instance = null;

private function __construct(){}

private function __clone(){}

public static function Init($handler = null,$level = 15)

{

if(!self::$instance instanceof self)

{

self::$instance = new self();

self::$instance->__setHandle($handler);

self::$instance->__setLevel($level);

}

return self::$instance;

}

private function __setHandle($handler){

$this->handler = $handler;

}

private function __setLevel($level)

{

$this->level = $level;

}

public static function DEBUG($msg)

{

self::$instance->write(1, $msg);

}

public static function WARN($msg)

{

self::$instance->write(4, $msg);

}

public static function ERROR($msg)

{

$debugInfo = debug_backtrace();

$stack = "[";

foreach($debugInfo as $key => $val){

if(array_key_exists("file", $val)){

$stack .= ",file:" . $val["file"];

}

if(array_key_exists("line", $val)){

$stack .= ",line:" . $val["line"];

}

if(array_key_exists("function", $val)){

$stack .= ",function:" . $val["function"];

}

}

$stack .= "]";

self::$instance->write(8, $stack . $msg);

}

public static function INFO($msg)

{

self::$instance->write(2, $msg);

}

private function getLevelStr($level)

{

switch ($level)

{

case 1:

return 'debug';

break;

case 2:

return 'info';

break;

case 4:

return 'warn';

break;

case 8:

return 'error';

break;

default:

}

}

protected function write($level,$msg)

{

if(($level & $this->level) == $level )

{

$msg = '['.date('Y-m-d H:i:s').']['.$this->getLevelStr($level).'] '.$msg."\n";

$this->handler->write($msg);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值