<?php if(!defined("DIR_ROOT")){ define("DIR_ROOT", dirname(dirname(__FILE__))); } define('LEVEL_FATAL', 0); define('LEVEL_ERROR', 1); define('LEVEL_WARN', 2); define('LEVEL_INFO', 3); define('LEVEL_DEBUG', 4); /** * 记录操作过程中的日志信息 * @version 1.0 20140725 */ class Logger { static $LOG_LEVEL_NAMES = array( 'FATAL', 'ERROR', 'WARN', 'INFO', 'DEBUG' ); private $level = LEVEL_DEBUG; private $rootDir = DIR_ROOT; static function getInstance() { return new Logger; } /** * 设置最小的log记录级别,小于该级别的log日志输出将被忽略掉 * @param int $lvl -- 最小的log日志输出级别 * @throws Exception */ function setLogLevel($lvl) { if($lvl >= count(Logger::$LOG_LEVEL_NAMES) || $lvl < 0) { throw new Exception('invalid log level:' . $lvl); } $this->level = $lvl; } //###################输出各个级别的日志信息---start============== function debug($message, $name = 'root') { $this->_log(LEVEL_DEBUG, $message, $name); } function info($message, $name = 'root') { $this->_log(LEVEL_INFO, $message, $name); } function warn($message, $name = 'root') { $this->_log(LEVEL_WARN, $message, $name); } function error($message, $name = 'root') { $this->_log(LEVEL_ERROR, $message, $name); } function fatal($message, $name = 'root') { $this->_log(LEVEL_FATAL, $message, $name); } //###################输出各个级别的日志信息---end============== /** * 记录log日志信息 * @param unknown_type $level * @param unknown_type $message * @param unknown_type $name */ private function _log($level, $message, $name) { if($level > $this->level) { return; } $log_file_path = $this->rootDir."/logs/".$name.'.log'; $log_level_name = Logger::$LOG_LEVEL_NAMES[$this->level]; $content = date('Y-m-d H:i:s') . ' [' . $log_level_name . '] ' . $message . "\n"; file_put_contents($log_file_path, $content, FILE_APPEND); } } // //$logger = Logger::getInstance(); //$logger->debug('this is my first log', 'test');
php工具类之【自定义日志记录类】
猜你喜欢
转载自student-lp.iteye.com/blog/2104037
今日推荐
周排行