工作中需要用到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...