开发过程中,对可能出错的代码做异常捕获、打印日志,有利于分析系统中的bug,暂时先不说PHP的异常捕获,先说说PHP日志打印吧。
PHP有一函数error_log,猛一看是打印日志的,到底是不是呢,接下来咱分析下。
函数原型:
<?php error_log ($message, $message_type = null, $destination = null, $extra_headers = null); ?>
参数说明:
$message //日志内容,你懂得
$message_type //日志类型
$destination //日志内容输出目标
$extra_headers //附加头内容
功能说明:
以$message_type参数为切入点来说明吧。$message_type有4个可选值,在强类型语言中的话应该叫枚举值,只是PHP中没有枚举的概念。$message_type可选值如下。
0,默认值,$message写入php.ini配置error_log指定的文件中,实例:error_log("there is ab bug");
1,一般的用法就是将日志内容发到邮箱,$destination就是邮件地址,$extra_header附加头信息,实例:error_log("there is ab bug",1,"someone@example.com","From: webmaster@example.com");
2,不常用,不说了;
3,$message写入$destination指定的文件中,实例:error_log("there is ab bug\r\n",3,"D:/php.log");
error_log,顾名思义是错误日志打印,其实错误这个词有点儿狭隘了,这个函数实际上是,你想打什么东西都可以,由开发者自己决定,实际上这个函数就是个写文件的函数。大家知道日志文件是多个线程或进程共享的资源,打日志呢就不能受共享资源写冲突而丢失了日志,不然日志都不准确,还怎么进一步分析系统情况呢,打日志不准确就犹如拿一把不准确的尺子量长度。那么error_log到底能完成打日志的功能不,有待测试,看测试代码。
<?php error_log("测试\r\n",3,"D:/php.log"); ?>
用Jmeter做下并发测试,模拟600个并发用户,循环请求5次,总请求数是3000,(假设web服务器无瓶颈问题)php.log文件中应该有3000行的测试,到底能不能达到预期呢,打开php.log查下就知道了,一看,没有3000行,于是就得出了一个结论:error_log不靠谱,是的,error_log函数没有做并发处理,在高并发情况下会丢掉日志,所以这个函数没多大用,不用也罢。不用这个函数,那打日志怎么办呢?请不要留恋error_log了,还记得flock不,自己封装一个呗;或者用apache的开源项目log4php吧。
注:error_log函数使用的前提是设置php.ini中log_error=On
相关推荐
log_errors = On ``` 接着,设置日志文件的路径: ```ini error_log = /wwwroot/php_errors.log ``` 确保日志文件路径正确,并且该文件具有写入权限,可以使用命令行工具赋予文件权限: ```bash chmod -R 777 /...
在PHP编程中,error_log()函数用于向服务器的日志文件或指定的位置记录错误信息。该函数的使用非常灵活,既可以用于错误记录,也可以用于调试输出。接下来,我们详细探讨error_log()函数的使用方法以及相关参数的...
`php error_log` 函数是PHP编程中用于记录和发送错误信息的重要工具。它能够帮助开发者在多人协作或复杂无单元测试的项目中追踪并记录程序中的错误,特别是数据库查询错误。通过使用`error_log`,可以将错误信息写入...
除了 `error_log()`,PHP还提供了其他错误处理和日志记录的相关函数,如 `error_reporting()` 用于设置错误报告级别,`display_errors` 和 `log_errors` 配置常量分别控制是否显示和记录错误,以及 `set_error_...
- **函数定义**: `int error_log(string message, int message_type, string [destination], string [extra_headers])` - **功能**: 此函数用于发送错误信息到不同的目标位置,如Web服务器的错误日志文件、TCP端口或...
PHP提供了一些内置的日志处理函数,如`error_log()`,但这些函数功能相对单一,无法满足复杂的日志需求。因此,自定义日志类成为了解决这个问题的有效途径。 这个"php实现的debug-log日志操作类"可能包含以下核心...
您可能感兴趣的文章:php实现的简单日志写入函数PHP调试函数和日志记录函数分享php基于自定义函数记录log日志方法php error_log 函数的使用PHP error_log()将错误信息写入一个文件(定义和用法)PHP中error_log()函数...
在PHP中,可以通过内置函数error_log()来记录日志,但是使用自定义函数可以带来更多的灵活性和控制力。 在提供的文档中,介绍了一个名为save_log的自定义函数,这个函数的主要职责是记录错误日志。函数接收一个参数...
本文旨在详细介绍PHP中的全局错误处理机制,包括`error_reporting`和`set_error_handler`两个核心函数的使用方法。 #### 背景介绍 PHP作为一种动态解释型语言,虽然提供了极大的灵活性,但同时也意味着更容易出现...
为了记录错误,可以使用`error_log()`将错误信息写入日志。 8. **安全考虑** 在进行文件操作时,必须注意避免路径注入和跨站脚本攻击。使用`basename()`剥离路径中的文件名,防止相对路径导致的意外访问。同时,...
在PHP中,我们可以使用`error_log`函数或者通过`ini_set('error_log', '/path/to/logfile.log')`来设置错误日志的位置。同时,Apache服务器也有自己的日志系统,包括访问日志和错误日志。访问日志记录了所有HTTP请求...
`die()`, `echo()`, `empty()`, `error_log()`, `error_reporting()`等函数用于错误处理、输出、日志记录等通用功能。 以上列举了部分PHP函数的功能和用途,PHP拥有丰富的内置函数库,涵盖了从基本的数学运算、字符...
可以创建一个`log_error($message)`函数,使用`error_log()`将错误信息写入日志文件,便于后期排查问题。 7. **性能优化**: 在编写公共函数时,考虑性能优化也非常重要。例如,避免不必要的数据库查询,合理使用...
这里的`error_log`函数用于将日志信息写入到指定的文件中。`3`参数表示使用系统错误日志格式,而`/path/to/logfile.log`则替换为实际的日志文件路径。 然而,仅仅记录单个函数的执行时间可能不足以全面了解整个PHP...
在行中,所做的是在程序员和 PHP error_log()函数之间创建一个抽象层。 那么……它有什么特别之处? 最大的优点是您可以使用error_log()以所有三种可能的方式写入日志,只需更改参数即可。 永远!! 将写入日志,...
"PHP上百个常用功能函数.zip"这个压缩包显然包含了众多实用的PHP函数和方法,旨在帮助开发者在日常工作和学习中提升效率。下面将详细讨论一些PHP中常见的功能函数,这些函数通常会在各种场景下被广泛应用。 1. **...
error_log("Error: [$errno] $errstr in $errfile on line $errline"); } set_error_handler("myErrorHandler", E_ALL & ~E_NOTICE & ~E_DEPRECATED); ``` 以上方法可以帮助你隐藏PHP的警告和废弃警告。然而,值得...