标题:简单的PHP日志函数 出处:沧海一粟 时间:Wed, 14 Mar 2018 10:15:40 +0000 作者:jed 地址:http://www.dzhope.com/post/1108/ 内容: 生成txt格式的日志文件 /** * 日志记录,按照"Y-m-d.log"生成当天日志文件 * 日志路径为:入口文件所在目录/logs/$type/当天日期.log.php,例如 /logs/error/2012-01-05.log.php * @param string $content 日志内容 * @param string $type 对应logs目录下的子文件夹名 * @return bool true/false 返回写入的字符数,出现错误时则返回 FALSE 。 */ function writelog($content = "", $type = "") { date_default_timezone_set('PRC'); //判断日志根目录是否存在,不存在则创建 $log_root = getcwd() . DIRECTORY_SEPARATOR . 'logs'; // $log_root = ROOT_PATH . 'logs'; if (!is_dir($log_root)) { mkdir($log_root, 0777); } //如传入第二个参数,则生成子文件夹;否则在根目录创建日志 if ($type) { $dir = $log_root . DIRECTORY_SEPARATOR . $type; if (!is_dir($dir)) { if (!mkdir($dir, 0777, true)) { return false; } } } else { $dir = $log_root; } $filename = $dir . DIRECTORY_SEPARATOR . date("Y-m-d") . '.log.txt'; if (is_array($content)) { $content = print_r($content, true); } $ss = ''; for ($i = 1; $i <= 115; $i++) { $ss .= '-'; } $exec_url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER["REQUEST_URI"]; //组装数据 $str = "\r\n" . 'time:' . date("Y-m-d H:i:s") . "\r\n" . 'exec_url:' . $exec_url; $str .= "\r\n" . 'content:' . $content . "\r\n" . $ss; if (!$fp = @fopen($filename, "ab")) { return false; } flock($fp, LOCK_EX); $res = fwrite($fp, $str); flock($fp, LOCK_UN); fclose($fp); return $res; } 生成php格式的日志文件 /** * 日志记录,按照"Y-m-d.log"生成当天日志文件 * 日志路径为:入口文件所在目录/logs/$type/当天日期.log.php,例如 /logs/error/2012-01-05.log.php * @param string $content 日志内容 * @param string $type 对应logs目录下的子文件夹名 * @return bool true/false 返回写入的字符数,出现错误时则返回 FALSE 。 */ function write_log($content = "", $type = "") { date_default_timezone_set('PRC'); //判断日志根目录是否存在,不存在则创建 $log_root = getcwd() . DIRECTORY_SEPARATOR . 'logs'; // $log_root = ROOT_PATH . 'logs'; if (!is_dir($log_root)) { mkdir($log_root, 0777); } //如传入第二个参数,则生成子文件夹;否则在根目录创建日志 if ($type) { $dir = $log_root . DIRECTORY_SEPARATOR . $type; if (!is_dir($dir)) { if (!mkdir($dir, 0777, true)) { return false; } } } else { $dir = $log_root; } //判断日志文件是否存在,以及内容是否为数组,不是数组则删除文件; $filename = $dir . DIRECTORY_SEPARATOR . date("Y-m-d") . '.log.php'; @$logs = include $filename; if ($logs && !is_array($logs)) { unlink($filename); $logs = array(); } //将时间和内容写入日志 $exec_url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER["REQUEST_URI"]; //组装数据 $this_log = array( "time" => date("Y-m-d H:i:s"), 'exec_url' => $exec_url, ); $this_log['content'] = $content; $logs[] = $this_log; $str = " $val) { $key = is_string($key) ? '\'' . addcslashes($key, '\'\\') . '\'' : $key; $val = !is_array($val) && (!preg_match('/^\-?\d+$/', $val) || strlen($val) > 12) ? '\'' . addcslashes($val, '\'\\') . '\'' : $val; if (is_array($val)) { $evaluate .= $comma . $key . ' => ' . array_eval($val, $format, $level + 1); } else { $evaluate .= $comma . $key . ' => ' . $val; } $comma = ',' . $line . $space; } $evaluate .= $line . $space . ')'; return $evaluate; } Generated by Bo-blog 2.1.1 Release