1. 云栖社区>
  2. PHP教程>
  3. 正文

一个简单的日志记录函数

作者:用户 来源:互联网 时间:2017-12-01 18:00:16

日志函数简单记录一个

一个简单的日志记录函数 - 摘要: 本文讲的是一个简单的日志记录函数,/** * 记录一条日志,会以以下三种方式依次尝试写日志。 * - 向当前参数指定的文件写入日志。 * - 尝试向php.ini中指定的error_log写内容。 * - 向系统日志写内容,还是失败的话则返回false。 * * 不用每次调

/**
* 记录一条日志,会以以下三种方式依次尝试写日志。
* - 向当前参数指定的文件写入日志。
* - 尝试向php.ini中指定的error_log写内容。
* - 向系统日志写内容,还是失败的话则返回false。
*
* 不用每次调用时都指定logFile和dateFormat参数
* 系统会自动记住上次指定的内容。
*
* PHP5.0之后请确保已经设置好时区,否则可能会抛出一个错误。
* example:
* @code php
* // 第一次调用,初始化日志,并写入第一条信息。
* logg('init...', LOG_INFO, '/usr/log.txt', 'y-m-d');
* // 写日志
* logg('log msg', LOG_INFO);
* @endcode
*
* @param string $message 日志内容
* @param int $type 日志类型,参照syslog函数的参数
* @param string $logFile 日志文件
* @param string $dateFormat 日志的时间格式
* @return bool 是否成功写入
* @staticvar array $types 参数$type对应的描述信息。
* @staticvar string $file 保存$logFile参数最后次传递的内容。
* @staticvar string $format 保存$dateFormat参数最后传递的内容。
*/
function logg($message, $type, $logFile = null, $dateFormat = null)
{
static $types = array(
LOG_EMERG => 'EMERG',
LOG_ALERT => 'ALERT',
LOG_CRIT => 'CRITICAL',
LOG_ERR => 'ERROR',
LOG_WARNING => 'WARNING',
// windows下,以下这三个值是一样的
LOG_NOTICE => 'NOTICE',
LOG_DEBUG => 'DEBUG',
LOG_INFO => 'INFO');
static $file = null;
static $format = 'Y-m-d H:i:s';
if(!is_null($logFile)){ $file = $logFile; }
if(!is_null($dateFormat)){ $format = $dateFormat; }
/* 格式化消息 */
$type = isset($types[$type]) ? $type : LOG_INFO;
$msg = date($format) . ' [' . $types[$type] . '] ' . $message . PHP_EOL;
if(error_log($msg, 3, $file))
{ return true; }
if(error_log($msg, 0))
{ return true; }
return syslog($type, $message);
}
//该片段来自于http://outofmemory.cn

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索日志 , 函数 , 简单 , 记录 一个 ,以便于您获取更多的相关知识。

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

开发者常用软件,超百款实用软件一站式提供