草庐IT

php - 如何在 PHP 的开头截断文件?

我有一个用PHP编写的简单记录器类。它写入的文件应该有一个最大大小。我知道我可以使用ftruncate($filename,$size)截断文件,但这会删除最后的内容。所以我想做的是:if(filesize($filename)>$mySize){//removeXbytesatBEGINNINGof$filename}//appendlogmessage$handle=fopen($filename,'a+');if($handle!==false){fwrite($handle,$myMessage);fclose($handle);}这样日志就会随着时间的推移“滚动”文件,而不是

php - 如何在 .user.ini 中引用主目录

我想将PHP错误记录到自定义文件中。因此我设置了error_log指令。使用用户主目录的绝对路径可以正常工作:error_log=/customers/homepages/245/28134556/htdocs/My_Logs/php.log我更喜欢使用相对路径,但我不知道如何正确引用主目录(即/customers/homepages/245/28134556/htdocs)。我试过:error_log=~/My_Logs/php.logerror_log="${HOME}/My_Logs/php.log"关于http://php.net/manual/en/ini.core.php#

PHP报错: some errors to screen,全部记录

我想知道如何在屏幕上显示E_ERROR错误消息,但将E_ALL错误消息写入错误日志,我们目前使用error_reporting()在我们的应用程序索引页面中,这样我们就可以更改错误报告而无需不断重新启动Web服务器,但似乎这(或者它的工作方式)意味着我们只记录我们看到的错误在屏幕上。有没有办法记录和显示不同级别的错误?干杯! 最佳答案 您可以创建一个自定义错误处理程序,并在您的错误处理程序中检查错误是否为E_ERROR;如果是这样,打印出来。然后记录错误,不管它是否是E_ERROR。如果您不熟悉自定义错误处理,PHPmanual有一

php - 如何使用php复制文件并截断​​原始文件而不丢失数据

我有一个生成日志文件的PHP脚本。另一方面,我有另一个脚本应该每小时运行一次来​​处理日志文件。在我的第二个脚本中,我想复制并截断正在写入的日志文件,而不会丢失任何数据。在有限的测试中,我一直在使用重命名来创建副本,我得到了预期的结果但我担心这种方法的正确性。这样做安全吗? 最佳答案 您正在做的称为“日志轮换”,是的,通过重命名日志文件来执行此操作是安全的。在Linux中,您可以在另一个应用程序写入文件时重命名文件,并且该应用程序将继续写入重命名的文件。参见thisSOanswer了解详情。在Windows中,如果打开文件的应用程序

php - 生产中的 Symfony 日志记录忽略日志级别

factories.yml中的相关片段:prod:logger:class:sfAggregateLoggerparam:level:errloggers:sf_file_err:class:sfFileLoggerparam:level:errfile:%SF_LOG_DIR%/%SF_APP%_%SF_ENVIRONMENT%.log问题:一切都被记录下来。 最佳答案 此配置适用于我的所有项目。prod:logger:class:sfAggregateLoggerparam:level:errloggers:sf_file_de

php - Symfony2 : how to log query duration to logs/dev. 日志

在开发环境中,Symfony2默认将SQL查询记录到dev.log。出于分析和调试目的,我还想记录查询的执行时间。这一定是可能的,因为“真实页面”的分析器会在每个查询旁边显示执行时间。我认为正确的类是DBalLogger+一个秒表实例,但我不知道如何以及在何处正确配置这些服务(monolog?doctrine?dbal.connection?samplessay我们必须使用setSQLLogger但我可以在config_dev.yml中的哪里执行此操作?) 最佳答案 你可以注入(inject)monolog服务,然后手动添加时间引用

php - 在 Laravel 日志中记录 PHP 异常

我开始在Laravel4中为我的应用程序创建自定义日志功能,自定义消息一切正常,但是当我尝试在try..catch(Exception$e)中记录异常消息时>不会将此异常写入日志文件。pushHandler(newStreamHandler($logFile,Logger::INFO));break;case'Warn':$log->pushHandler(newStreamHandler($logFile,Logger::WARNING));break;case'Error':$log->pushHandler(newStreamHandler($logFile,Logger::ER

php - codeigniter 错误日志文件仅显示通知错误但错误消息未显示在屏幕上

我真的被这个问题吓坏了,它开始推迟我项目的其余部分,这真的让我很沮丧。要点是它只向我显示通知错误和错误日志文件中的404错误不在屏幕上,其他通知错误显示在屏幕上。为什么codeigniter会在应用程序/日志中显示错误,例如:ERROR-2015-04-1812:03:24-->404PageNotFound-->uploaded_imgERROR-2015-04-1812:03:24-->404PageNotFound-->imagesERROR-2015-04-1812:03:24-->404PageNotFound-->images//Aboveallthreeerrorsare

php - 在 PHP MVC 应用程序中在哪里捕获异常?

我有一个中小型PHP应用程序,用于练习OOP和MVC技能。我有init/bootstrap文件调用Router调用Controller->ServiceLayer->Repository(数据库),然后将变量发送回View层(所有依赖项均由DiC/IOC处理)。我创建了扩展核心Exception类的abstractclassBaseException。然后我有不同的异常类-DatabaseException、FileException等。ExampletriggeringException:在数据库层,我尝试从数据库中获取数据,如果失败则抛出新的DatabaseException。示例

php - 在 PHP 中记录自定义异常的最佳实践

我有一个自定义异常(在其他自定义异常中进一步扩展)。我的项目需要记录发生的所有customExceptions(及其所有后代)。我有一个可以记录customException(和其他任何东西)的记录器。一种方法是在异常处理时显式记录异常,如下所示。try{//someexceptionoccur}catch(customeException$e){$log->logException($e);$e->showMessage();//ordoanythingthatwehavetodowiththeerror.}因为我们正在记录所有的customExceptions,我能想到的另一种方法