自己寫的PHP的Logger

2021-06-01 05:55:00 字數 1736 閱讀 6994

工作中需要用到php寫日誌,log4php需要複雜的配置檔案,不想去弄。雖然跟log4j的配置差不多,但也沒必要去維護乙個日誌配置檔案。

就自己寫了乙個單檔案的logger類,只需要include進來使用即可。

不多說,貼**

<?php

/* * php logger class

* created: 2011-10-26

* author: xingfei(

* licence: free of use and redistribution

*/if(!defined('_logger_php_'))

define('level_fatal', 0);

define('level_error', 1);

define('level_warn', 2);

define('level_info', 3);

define('level_debug', 4);

class logger

function setloglevel($lvl)

$this->level = $lvl;

}function _log($level, $message, $name)

$log_file_path = log_root . $name . '.log';

$log_level_name = logger::$log_level_names[$this->level];

$content = date('y-m-d h:i:s') . ' [' . $log_level_name . '] ' . $message . "\n";

}function debug($message, $name = 'root')

function info($message, $name = 'root')

function warn($message, $name = 'root')

function error($message, $name = 'root')

function fatal($message, $name = 'root')

}}

使用時,先獲取乙個logger例項,然後呼叫logger的debug,info,warn,error,fatal等方法。

第乙個引數是需要log的內容,第二個引數表示log的名稱,作為log檔案的檔名。log目錄

使用log_root來定義。如果需要不同的log目錄,則在include之前,首先define自己的log_root。

舉例如下

<?php

define('log_root', '/myweb/logs/');

include('logger.php');

$logger = logger::getinstance();

$logger->debug('this is my first log', 'test');

注意:log_root需要在最後新增反斜線『/』。

記錄日誌時,會判斷loglevel,如果設定的loglevel比使用的loglevel高,則不會寫入任何日誌。

在需要禁用日誌時,就可以setloglevel(level_fatal)來只記錄嚴重級別的日誌。

預設的loglevel是最低級別的debug,即記錄所有的日誌。

在開發階段使用預設的即可。在生產環境下,一般使用warn較為妥當。

寫自己的php框架 一

從本篇開始介紹如何用php來實現mvc模式開發,而且後續的文章也是在這個基礎上不斷改造優化。關於mvc這裡就不多說了,並且在以後的文章裡也是以講技術為主。本篇先介紹一下php的mvc實現原理,我們框架的mvc部分也是基於此原理實現的,但是今天的 並不是框架內的 僅僅為說明原理。一 檔案結構 建立3個...

寫乙個logger的類

參考 寫乙個logger的類 import logging 建立日誌物件 class logger def init self,logpath 制定log格式 format logging.formatter asctime s filename s name s line lineno d mes...

php檔案上傳 自己寫的

單上傳 author buhuan param string file form name form表單的上傳檔案欄位的名稱 name屬性 param string upload path 上傳的資料夾絕對路徑 param string web path 上傳後檔案相對於 根目錄的相對路徑 para...