寫個日誌封裝器 感覺用起來很爽

2021-08-31 09:13:43 字數 3485 閱讀 6637

寫個日誌封裝器....

<?php

/** * 日誌系統抽象類

* */

abstract class logwriterabstract

/** * logfirephpwriter 類提供對 firephp 的支援

*/class logfirephpwriter extends logwriterabstract

if ($this->_enabled)

$this->_kernel->fb($msg, $title, firephp::info);

}}/**

* logfile 類提供基本的檔案日誌服務

*/class logfilewriter extends logwriterabstract

$dir = realpath($dir);

if (substr($dir, -1) != ds)

if (!is_dir($dir) || !is_writable($dir)) else

global $___sfw_loaded_time;

$sec = (int) $___sfw_loaded_time;

$usec = $___sfw_loaded_time - $sec;

$this->_starttag = sprintf("[%s %s] *****== sfw loaded *****==\n",

date($this->dateformat, $sec), $usec);

if (isset($_server['request_uri']))

// 註冊指令碼結束時要執行的方法,將快取的日誌內容寫入檔案

shutdowncallback::getinstance()->add(array($this, '__writelog'));

// 檢查檔案是否已經超過指定大小

if (file_exists($this->_logfilename)) else

if ($maxsize >= 512) }}

}/**

* 追加日誌資訊

** @param string $msg

* @param string $title

* @param string $level*/}

/*** 將快取的日誌資訊寫入實際儲存,並清空快取

* 此方法由系統自動呼叫

* */

function __writelog()

flock($fp, lock_ex);

fwrite($fp, str_replace("\r", '', $content));

flock($fp, lock_un);

fclose($fp);

}}

<?php

/** * 應用程式基本啟動檔案,提**用程式執行的關鍵設定資訊

*/$root_dir = dirname(dirname(dirname(__file__)));

/** * 如果要整合第三方的 php 庫,錯誤報告也許要修改為:

* * error_reporting(e_all & ~(e_strict | e_notice));

*/error_reporting(e_all | e_strict);

$config = array(

/*** 應用程式的 id,用於唯一標識乙個應用程式

*//**

* 應用程式根目錄

*/'root_dir' => $root_dir,

/*** 主程式所在目錄

*//**

* 輔助庫目錄

*/'library_dir' => "/_code/lib",

/*** 配置檔案所在目錄

*/'config_dir' => "/_code/config",

/*** 臨時(快取)檔案所在目錄

*/'tmp_dir' => "/_code/tmp",

/*** 日誌檔案所在目錄

*/'log_dir' => "/_code/log",

/*** 所有擴充套件模組所在的目錄

*/ );

// 設定類檔案基本路徑

//set_include_path('.' . path_separator . $config['library_dir'] . path_separator . get_include_path());

// 載入不同命名空間下的配置檔案 .sys.php,.route.php

$configfornamepace = array(

/*** 國際化和本地化

*/ '_i18n_multi_languages' => false,// 指示是否啟用多語言支援

'_l10n_default_timezone' => 'asia/shanghai',// 預設的時區設定

/*** 日誌設定

*/'_log_enabled' => true ,

'_log_writer' => 'logfilewriter' , //logfirephpwriter

'_log_filename' => "-access.log" ,

'_log_file_maxsize' => 512 ,

'_log_levels' => 'notice, debug, warning, error, exception, info' ,

/*** 資料庫鏈結dsn設定

*/ '_db_default_dsn' => array(

'driver' => 'mysqlt',

'host' => 'localhost',

'login' => 'root',

'password' => 'root',

'database' => 'smallcms',

'charset' => 'utf8',

), ); /**

* 初始化應用程式

*/// 設定預設的時區

// 設定應用的日誌記錄服務

require_once("/log.php");

// 設定應用的快取服務

// 載入資料庫操作元件

require_once("/db.php");

// 設定分發器物件,並進行請求分發

require_once("/web.php");

$wd = webdispatcher::getinstance();

$wd->setnamespace($namespace);

// 設定過濾器

//$wd->addbeforefilter(new requestauthfilter());

$response = $wd->dispatching();

if ($response) echo $response;

置頂 寫個日誌封裝器 感覺用起來很爽

寫個日誌封裝器.日誌系統抽象類 abstract class logwriterabstract logfirephpwriter 類提供對 firephp 的支援 class logfirephpwriter extends logwriterabstract if this enabled th...

一起用C 寫個行列式計算器

剛剛開始 上大學的我,對於線性代數不是很理解。總感覺是那麼回事,又不是那麼回事。所以果斷把書裡的定義用程式解一遍。廢話不多說,直接上行列式類的 class hls d.add new int d.add new int public int get int index x,int index y 獲...

對《用C寫個取暖器》的看法

原文在http community.csdn.net expert topic 4446 4446519.xml?temp 284588 這帖子應該不是原創,在網上也搜得出很多日期在其前的同內容文章,而且並不是用c寫的,而是c c是沒有像new之類的用法的。我還是對其的 瘋狂 想法所深深吸引,這才是...