|
@@ -0,0 +1,76 @@
|
|
|
+<?php
|
|
|
+namespace Logger;
|
|
|
+class FileLogger {
|
|
|
+ const DEBUG = 100;
|
|
|
+ const INFO = 200;
|
|
|
+ const NOTICE = 250;
|
|
|
+ const WARNING = 300;
|
|
|
+ const ERROR = 400;
|
|
|
+ const CRITICAL = 500;
|
|
|
+ const ALERT = 550;
|
|
|
+ const EMERGENCY = 600;
|
|
|
+ /*
|
|
|
+ 参数说明:
|
|
|
+ log_dir:
|
|
|
+ filter_level:
|
|
|
+ create_datedir:
|
|
|
+
|
|
|
+ */
|
|
|
+ public static function getInstance($log_dir = "./log/", $filter_level = self::DEBUG, $create_datedir = true){
|
|
|
+ static $instance;
|
|
|
+ if(! $instance){
|
|
|
+ $instance = new \Logger\FileLogger($log_dir,$filter_level,$create_datedir);
|
|
|
+ }
|
|
|
+ return $instance;
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ 参数说明:
|
|
|
+ log_dir:
|
|
|
+ filter_level:
|
|
|
+ create_datedir:
|
|
|
+
|
|
|
+ */
|
|
|
+ public function __construct($log_dir = "./", $filter_level = self::DEBUG, $create_datedir = true){
|
|
|
+ $this->create_datedir=$create_datedir;
|
|
|
+ $this->log_dir=$log_dir;
|
|
|
+ $this->filter_level=$filter_level;
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ 参数说明:
|
|
|
+ folder:
|
|
|
+ level:
|
|
|
+ msg:
|
|
|
+
|
|
|
+ */
|
|
|
+ public function log($folder, $level, $msg){
|
|
|
+ //低于过滤等级的日志直接忽略
|
|
|
+ if($level < $this->filter_level)
|
|
|
+ return;
|
|
|
+
|
|
|
+ $leve_names = array(
|
|
|
+ 100 => 'debug',
|
|
|
+ 200 => 'info',
|
|
|
+ 250 => 'notice',
|
|
|
+ 300 => 'warning',
|
|
|
+ 400 => 'error',
|
|
|
+ 500 => 'critical',
|
|
|
+ 550 => 'alert',
|
|
|
+ 600 => 'emergency'
|
|
|
+
|
|
|
+ );
|
|
|
+
|
|
|
+ $levelname = $leve_names[$level];
|
|
|
+
|
|
|
+ if($this->create_datedir){
|
|
|
+ $datedir=date("Ymd", time()) ."/";
|
|
|
+ }else{
|
|
|
+ $datedir="";
|
|
|
+ }
|
|
|
+ echo "[$levelname]" . '[' . date('Y-m-d H:i:s') . ']' . $msg . PHP_EOL;
|
|
|
+ $file=$this->log_dir.$datedir.$folder."/".$levelname.".log";
|
|
|
+ $mkdir=dirname($file);
|
|
|
+ mkdir($mkdir,0777,true);
|
|
|
+ file_put_contents($file, '[' . date('Y-m-d H:i:s') . ']' . $msg . PHP_EOL,FILE_APPEND);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|