Symfony2 记录 404 错误

2023-12-07

我需要能够在发生 404 错误时记录/接收电子邮件。我可以在文档中看到如何为这些错误设置新模板,但是如何首先在控制器中捕获它们,以便可以实现日志记录/电子邮件逻辑?


也许添加一个监听 kernel.exception 事件的事件监听器就可以了? 查看http://symfony.com/doc/current/book/internals.html#kernel-exception-event随着http://symfony.com/doc/current/reference/dic_tags.html#dic-tags-kernel-event-listener

一个小例子:

1)创建自定义监听器

//bundles/Acme/AcmeBundle/Listener/CustomListener.php

namespace Acme\AcmeBundle\Listener;
use Symfony\Component\EventDispatcher\Event;

public class CustomListener {
    public function onKernelException(Event $event) {
        //Get hold of the exception
        $exception = $event->getException();
        //Do the logging
        // ...
    }
}

2)将监听器添加到您的配置中

//config.yml
services:
    kernel.listener.your_listener_name:
        class: Acme\AcmeBundle\Listener\CustomListener
        tags:
            - { name: kernel.event_listener, event: kernel.exception, method: onKernelException }

要获取日志记录或邮件(Swiftmailer)服务,您可以考虑将它们注入侦听器(http://symfony.com/doc/current/book/service_container.html#referencing-injecting-services)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony2 记录 404 错误 的相关文章

  • Symfony 3.0 - 无法加载资源“。” - 自定义路线加载器

    我正在努力将我的一个项目升级到 SF 3 该项目使用了一些自定义路由加载器 这些加载器之前工作没有问题 现在我得到了FileLoaderLoadException指出resource 无法加载 我看了一下文档 http symfony co
  • 没有 OutputInterface 的 Symfony2 控制台输出

    我正在尝试使用 Symfony 控制台命令将一些信息打印到控制台 通常你会做这样的事情 protected function execute InputInterface input OutputInterface output name
  • 独立 Symfony2 包内的功能测试

    我需要直接在独立包中进行一些功能测试 我不想测试控制器 只是测试真实服务之间的一些交互 我想知道是否有标准 最佳方法可以做到这一点 我用一种方法做到了 但想知道是否有更好的方法 这是我自己的解决方案 我总结了在独立包中测试的所有过程 1 首
  • 如何从 Symfony2 中的数据库加载配置设置?

    我当前在 config yml 文件中有许多设置 展望未来 我希望能够开发一个界面 管理员可以在其中更新这些设置 因此我希望能够通过数据库管理这些设置 我如何能够将这些设置从数据库加载到 Symfony2 中 以及在何时何地加载它们 Che
  • 如何从Entity中postLoad的LifecycleEventArgs获取Container对象?

    我正在尝试使用以下方法将容器对象 在控制器中可用 注入到实体中postLoad lifecycleCallbacks 论点postLoad方法是LifecycleEventArgs 我可以看到容器属性 我想检索 EventManager o
  • 将 PDF 存储在 MySQL 数据库中

    我正在开发一个应用程序 我需要创建 PDF 格式的发票 我在用着pdf包 https github com psliwa PdfBundle并且 PDF 文件已正确创建 public function helloAction format
  • Doctrine ORM 按注释对象字段排序

    所以它很简单 我在某个实体中有以下代码 var ServiceOffer ORM OneToMany targetEntity ServiceOffer mappedBy serviceProvider ORM OrderBy servic
  • 如何从symfony2中的现有表生成实体?

    我有带有一些字段的表 my table 我想在 MyBundle 中使用 my table 生成实体 但我不想重新创建 MyBundle 中的所有实体 我怎样才能做到这一点 这是你可以做到的方法 第一步 要求Doctrine自省数据库并生成
  • Mink 不适用于 behat 3.0.12

    我安装了 Behat Mink 和其他一些相关的软件包 这是我的composer json 文件 require behat behat 3 0 6 behat symfony2 extension dev master behat min
  • phpunit --debug 仍然只显示点

    我想查看 phpunit 运行期间当前执行的测试 我用 debugparam 但仍然只得到点 phpunit debug PHPUnit 3 7 19 by Sebastian Bergmann Configuration read fro
  • Symfony:为什么 isInitialized 总是 false?

    我用教义查询了一个用户 customer this gt getDoctrine gt getRepository DemoUserBundle Customer gt find 1 但我得到了结果 顾客 1441 已初始化 错误的 ID
  • 在应用程序内核中找不到 FOSUserBundle

    我在 Windows 上使用 symfony 并尝试按照官方文档中的描述配置 FOSUserBundle 尝试更新架构时出现此错误 Class FOS UserBundle FOSUserBundle not found in app Ap
  • Symfony 3新建项目报错

    我开始编写有关 Symfony 3 的教程 在使用以下命令创建新项目时遇到问题 php symfony phar new Symfony 我有这个错误 GuzzleHttp Exception RequestException Error
  • 使用 willdurand/BazingaJsTranslationBundle 时出现问题

    为了在我的 JavaScript 文件中使用翻译 我实现了willdurand BazingaJsTranslationBundle https github com willdurand BazingaJsTranslationBundl
  • 如何让Symfony2直接加载CSS、JS文件而不是通过PHP?

    老问题 请参阅下面的更新版本 我的开发环境不是最快的 每个 PHP 请求大约需要 500 毫秒 它开始成为 Symfony2 资源文件的问题 因为每个资源文件都是通过 Symfony 的内部控制器请求的 http localhost myp
  • 如何处理 Nokogiri 中的 404 未找到错误

    我正在使用 Nokogiri 来抓取网页 很少有 url 需要猜测 当它们不存在时 会返回 404 未找到错误 有没有办法捕获这个异常 http yoursite page 38475 gt page number 38475 doesn
  • Symfony2 - 将 Swiftmailer 添加为服务

    我想将我的电子邮件代码从我的控制器移至服务中 到目前为止我已完成以下操作 在 services yml 中创建条目 在 acme demobundle services EmailManager php 中创建了一个 EmailManage
  • 通过 Twig 中的资源包含来自供应商库的 css 和 js 文件

    我想包括css and js将我的供应商目录中的库中的文件复制到 Twig 中 我下载了morrisjs通过 Composer 进入我的 symfony 供应商目录 现在我想包括主要内容css und js文件到我的 Twig 模板中 但据
  • Twig dump 不打印任何内容

    我现在有点困惑 我总是像其他树枝函数一样使用树枝转储函数 但现在它完全没有输出 没有错误 异常 什么都没有 其他一切都工作正常 例如反式过滤器 dump test prints nothing layout booking chooseAr
  • 随机错误 symfony:ContextErrorException: 警告: simplexml_load_file(): I/O 警告: 无法加载外部实体

    在我的 Symfony 项目中 当我进入应用程序中的随机页面时 会出现以下随机错误 ContextErrorException Warning simplexml load file I O warning failed to load e

随机推荐