草庐IT

php - 使用 Monolog 记录完整的堆栈跟踪

我使用Monolog作为我应用程序中的独立库,最近我遇到了一个问题。比方说,在我的应用程序中的某个时刻,我捕获了一个异常并且我想记录它:$mylogger->error('Exceptioncaught',array('exception'=>$exception));除一件小事外,这一切都很完美——它不会记录整个堆栈跟踪。是否可以使用monolog内置格式化程序记录异常的完整堆栈跟踪? 最佳答案 实际上从1.12.0版本开始,就可以在您的日志文件中包含堆栈跟踪:LineFormatter有一个名为includeStacktrace

php - 使用 Monolog 记录完整的堆栈跟踪

我使用Monolog作为我应用程序中的独立库,最近我遇到了一个问题。比方说,在我的应用程序中的某个时刻,我捕获了一个异常并且我想记录它:$mylogger->error('Exceptioncaught',array('exception'=>$exception));除一件小事外,这一切都很完美——它不会记录整个堆栈跟踪。是否可以使用monolog内置格式化程序记录异常的完整堆栈跟踪? 最佳答案 实际上从1.12.0版本开始,就可以在您的日志文件中包含堆栈跟踪:LineFormatter有一个名为includeStacktrace

php - 如何使用 Monolog 关闭调试日志

我在一个项目中使用Monolog,它不是Symfony,只是我自己的使用独立Monolog作曲器包的应用程序。我想做的是以编程方式关闭调试日志。我正在写入日志文件,并且正在使用Monolog::StreamHandler。我正在使用从配置文件获取调试值的配置类来控制应用程序是否处于Debug模式。因此,当有人将该值更改为debuggingisfalse时,调试日志记录应该关闭。我觉得最简单的方法是扩展StreamHandler并像这样覆盖StreamHandler的write方法。classDurpLoggerextendsStreamHandler{protectedfunction

php - Symfony2 Monolog 配置为使用 raven 处理程序(哨兵)

我想用sentry来评估可能出现的错误、异常等我尝试使用KunstmaanSentryBundle,它非常适合捕获所有类型的错误,例如未定义的函数等,但我想用它自己的处理程序定义我自己的Monologchannel,但不幸的是我没有找到关于它的文档。config.yml应该是这样的:monolog:handlers:sentry:type:streamlevel:error//Logtodatabaseparameter(ravenforsentry)有人知道正确的配置吗? 最佳答案 这是config_prod.yml的一部分:mo

php - Monolog,如何将 PHP 数组登录到控制台?

我正在使用浏览器处理程序将消息记录到JS控制台require_once'vendor/autoload.php';useMonolog\Logger;useMonolog\Handler\BrowserConsoleHandler;$log=newLogger('name');$log->pushHandler(newBrowserConsoleHandler);$data=array(1,2,3,4);//addrecordstothelog$log->addWarning('Foo');我想知道,是否可以将诸如$data之类的数组记录到重新组合数组内容的控制台中?

php - Graylog2 与 Symfony 2 (Monolog)

我想在SF2项目中使用“Monolog->GelfHandler”。所以我将以下内容添加到我的composer.json中:"graylog2/gelf-php":"dev-master"我的SF2config.yml:monolog:handlers:main:type:gelfpublisher:hostname:%Graylog2.Host%port:%Graylog2.Port%level:infoformatter:monolog.formatter.session_request但是现在,如果我想记录一些东西,我会在GelfHandler::write()中得到一个错误Ge

php - 使用 Monolog 记录整个数组

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭7年前。Improvethisquestion有什么方法可以使用Monolog记录整个数组吗?我一直在阅读几个文档,但没有找到以可读格式记录整个数组的方法,有什么建议吗?我读过的文档:Monolog,howtologPHParrayintoconsole?http://symfony.com/doc/current/cookbook/logging/monolog.htmlhttps://www.webfactory.de/blog/logging-

php - 如何在 Symfony 中对 Monolog 消息进行高级过滤?

我在我的Symfony2.8项目中使用MonologBu​​ndle来管理日志消息。使用不同的Handlers将日志写入文件并同时通过电子邮件发送是没有问题的。我想减少通过邮件收到的消息数量。我已经使用DeduplicationHandler和FingersCrossed处理程序按错误级别进行过滤并避免重复消息。这工作正常但还不够。例如,我想减少有关PageNotFound错误的邮件数量。当然,如果未找到/existingPage,我希望收到通知,但我对有关/.well-known/...文件的消息不感兴趣。另一个示例是有关第三方CSV解析器组件中错误的消息。有几个已知的无害错误我不感

php - 如何向 Symfony/Monolog 日志输出添加附加信息(主机、URL 等)?

我正在开发我的第一个基于Symfony的WebApp项目。我已将Symfony配置为不仅将日志消息写入不同的日志文件,而且还可以立即通过电子邮件发送严重错误消息。这很好用。不过,我想在默认日志消息中添加一些额外的信息,以便更容易找到实际的错误源。例子:一页的Twig文件从.yml文件加载本地化文本。文本包含一个%about_link%占位符,应将其替换为“关于”页面的路由/URL。我忘记了这个替换,所以链接没有指向URL,而是指向%about_link%。这会导致NotFoundHttpException,因为找不到到%about_link%的路径...没什么大不了的。但是要找到包含此

php - Symfony 2.1 - 在 Controller 中切换 Monolog channel

我想登录到与通常的dev.log或prod.log不同的文件我知道这可以通过不同的channel完成,并且我在多个服务中使用过它,但我不太清楚如何在Controller中切换Monologchannel。在服务中,您只需通过服务定义中的tags属性来定义channel,但我如何才能在Controller中或在特定操作中更好地做到这一点?我知道一个可能的解决方案是:Symfony2:Logintoaspecificfile但是定义两个仅用于记录到自定义文件的新服务似乎有些矫枉过正。 最佳答案 唯一的方法是定义你的controllera