浏览代码

first commit

webconsole 6 年之前
当前提交
9a4d69c34b
共有 2 个文件被更改,包括 76 次插入0 次删除
  1. 0 0
      composer.json
  2. 76 0
      src/FileLogger.php

+ 0 - 0
composer.json


+ 76 - 0
src/FileLogger.php

@@ -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);
+	}
+
+}