/** * 记录日志 * @param unknown $content 日志内容 * @param boolean $if_sql 是否记录SQL */ protected function log($content, $if_sql = true) { if ($if_sql) { $log = Log::read(); if (!empty($log) && is_array($log)){ $content .= end($log); } } Log::record('queue\\'.$content,Log::RUN); }
/** * 显示页面Trace信息 * * @return array */ public static function showTrace() { $trace = array(); //当前页面 $trace[Language::get('nc_debug_current_page')] = $_SERVER['REQUEST_URI'] . '<br>'; //请求时间 $trace[Language::get('nc_debug_request_time')] = date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']) . '<br>'; //系统运行时间 $query_time = number_format(microtime(true) - StartTime, 3) . 's'; $trace[Language::get('nc_debug_execution_time')] = $query_time . '<br>'; //内存 $trace[Language::get('nc_debug_memory_consumption')] = number_format(memory_get_usage() / 1024 / 1024, 2) . 'MB' . '<br>'; //请求方法 $trace[Language::get('nc_debug_request_method')] = $_SERVER['REQUEST_METHOD'] . '<br>'; //通信协议 $trace[Language::get('nc_debug_communication_protocol')] = $_SERVER['SERVER_PROTOCOL'] . '<br>'; //用户代理 $trace[Language::get('nc_debug_user_agent')] = $_SERVER['HTTP_USER_AGENT'] . '<br>'; //会话ID $trace[Language::get('nc_debug_session_id')] = session_id() . '<br>'; //执行日志 $log = Log::read(); $trace[Language::get('nc_debug_logging')] = count($log) ? count($log) . Language::get('nc_debug_logging_1') . '<br/>' . implode('<br/>', $log) : Language::get('nc_debug_logging_2'); $trace[Language::get('nc_debug_logging')] = $trace[Language::get('nc_debug_logging')] . '<br>'; //文件加载 $files = get_included_files(); $trace[Language::get('nc_debug_load_files')] = count($files) . str_replace("\n", '<br/>', substr(substr(print_r($files, true), 7), 0, -2)) . '<br>'; return $trace; }
<?php require_once 'Log.class.php'; $log = new Log(); $log->Write('test.txt', 'My name is Kami'); echo $log->read('test.txt'); // output: 'My name is Kami in test.txt
<head> <meta charset="utf-8"> <title>Object Serialization using PHP Sessions</title> </head> <body> <h3>Object Serialization using PHP Sessions</h3> <?php $now = strftime("%c"); // Default session timeout is 1440 sec if (!isset($_SESSION['logger'])) { print "<p>Start new session</p>"; echo '<p>Create session and persistent log object</p>'; $logger = new Log('/tmp/persistent_log.txt'); $_SESSION['logger'] = $logger; $logger->write("Created {$now}"); } else { print "<p>Session is active</p>"; $logger = new Log('/tmp/persistent_log.txt'); $logger->write("Viewed home page {$now}"); echo '<p>The log contains:</p>'; echo nl2br($logger->read()); } ?> <p><a href="next.php">Next Page</a> <a href="logout.php">Close Session</a> </p> </body> </html>
class Arquivo { protected static $file; public static function read() { return file_get_contents(self::$file); } } class Log extends Arquivo { public static $log_file = '/tmp/teste.log'; public static function write($msg) { // self pode ser usado para acessar métodos/propriedades da classe file_put_contents(self::$log_file, $msg, FILE_APPEND); } public static function read() { parent::$file = self::$log_file; return parent::read(); // parent pode ser usado para acessar membros das classes pai } } echo "Arquivo de log: " . Log::$log_file; // acesso a propriedades estáticas echo PHP_EOL; // escreve no log Log::write('Nova entrada no log' . PHP_EOL); // acesso a métodos estáticos echo Log::read(); echo PHP_EOL;