问题标签 [zend-log]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
391 浏览

model-view-controller - Zend_Session 和 Zend_Log _Db 每次页面加载都会向数据库写入两次

网上有很多类似问题的例子,但他们的解决方案似乎都没有解决这个特殊的变化。任何建议,将不胜感激。

通常会出现此问题,因为恶意链接导致对 favicon 或 css 文件等资源的请求多次命中调度程序,从而导致多个调度进程,从而导致数据库中的多行。

我已经检查了这个非常简单的示例页面上的所有链接实际上都解析为它们指向的资源。

会话处理程序设置如下:

数据库日志记录设置如下:

这两个对象都已正确设置,并且可以从数据库读取和写入。只有一切都发生了两次。如果我将测试日志消息放在应用程序的任何位置,它将被写入数据库两次。如果我在每次调用索引操作时增加三个变量——一个存储在会话中,一个通过 Zend_Registry 对象传递,另一个在 indexAction 本地传递——只有会话变量增加 2。Apache 访问日志显示正确的数量的请求从页面加载中触发,并且都具有 200 或 304(未更改)的良好响应代码。

我已经尝试禁用所有头部链接。我已经尝试完全禁用布局。我已将所有内容本地化到调度程序并在调度运行之前退出。

在所有情况下,都会发生额外的写入/增量。有什么想法吗?提前感谢您的帮助。

0 投票
1 回答
348 浏览

php - 在自定义类中使用 Zend_Log

我正在使用 Zend_Log 和其他必需的类,而没有 MVC 框架。我想将 Zend 的日志记录功能(以及将来的其他模块)添加到我的自定义类中,我想知道这样做的最佳方法是什么。

现在我有一个 Zend 记录器的包装器,所以大概可以全局访问它:

我是否应该将此代码添加到我要记录的类中的每个方法中?我不应该在我的课程中创建日志吗?有没有更聪明的方法?

感谢您的帮助,DC

0 投票
2 回答
305 浏览

php - 挂钩到错误处理周期

我正在构建一个监控解决方案,用于记录 PHP 错误、未捕获的异常以及用户想要记录到数据库表的任何其他内容。是商业 Zend Server 中监控解决方案的一种替代品。

我编写了一个扩展 Zend_Log 的 Monitor 类,可以处理所有提到的情况。我的目标是将配置减少到一个地方,即 Bootstrap。目前我正在像这样初始化监视器:

registerErrorHandler() 方法启用 php 错误日志记录到数据库, logExceptions() 方法是一个扩展,只是设置一个受保护的标志。

在 ErrorController errorAction 我添加以下行:

我想避免向 ErrorController 添加代码,我宁愿动态注册一个插件。这将使用户更容易集成到现有项目中。

问题:我可以注册一个使用 postDispatch 钩子的控制器插件并达到相同的效果吗?我不明白是什么事件触发了errorAction,如果电路的多个阶段有多个事件,我需要使用几个钩子吗?

0 投票
1 回答
889 浏览

zend-framework - 在 Zend_Registry 与 Zend_Cache 中存储数据

到目前为止,我一直在使用Bootstrap.php将 application.ini 配置加载到 Zend_Registry 以及记录器实例中。我想知道将这些存储在 Zend_Cache 中是否会是一个更好的解决方案,因为它们在应用程序的生命周期内保持不变,并且每当我重新部署应用程序时,无论如何都会在第一次运行时清除缓存。你对此有何判断?

有人还建议创建一个控制器,将记录器和配置存储在受保护的变量中,然后所有应用程序控制器都将从那里继承。我不认为这是一个比当前 Zend_Registry 更好的解决方案,不确定我是否有道理。

0 投票
1 回答
628 浏览

zend-framework - 在 Zend_Cache/Zend_Registry 中存储 Zend_Log 的实例,带/不带自定义帮助器

我正在尝试将 Zend_Log 的实例(使用 Zend_Log_Writer_Stream)存储到 Zend_Cache(最好)或 Zend_Registry(回退),但使用自定义助手作为抽象层而不是直接访问。

问题

  • 除了直接使用 Zend_Registry 时,每次 Zend_Log_Writer_Stream 的 _stream 属性都会消失。

我在下面附上了我的代码以及它生成的输出。

我没有关注这些 链接,因为我有另一个写入器 Zend_Log_Writer_Database 写入到一个单独的数据库而不是应用程序,所以我需要初始化它。现在我已经把它注释掉了。

Bootstrap.php - 剪裁

Helper_SCacheOrRegistry.php

输出:

记录器,局部变量

记录器,来自使用自定义助手的注册表

记录器,来自使用自定义助手的 apc 缓存

记录器,来自 Zend_Registry,直接。

记录器,来自 apc 缓存,直接。

0 投票
1 回答
741 浏览

php - FirePHP 与 Zend_Log_Writer_Firebug 一起使用时不显示额外内容

我一直在使用 Zend Framework 进行开发多年(从 0.9 开始),从那以后这个问题一直困扰着我。

我想借助 FirePHP 和 Zend Framework 1.11 应用程序在 FireBug 控制台上输出消息。我已经使用默认的 application.ini 文件配置了 Firebug:

我现在可以在 FireBug 中看到消息,例如在 IndexController 中,通过调用无效操作或显式抛出异常,如

这导致默认的 ErrorController 处理异常并显示堆栈跟踪和请求参数:

请求参数

默认的 ErrorController 也会自动将所有消息记录到 FireBug:

萤火虫成功

但是,如您所见,堆栈跟踪或请求参数等额外信息并未显示,尽管 FireBug 非常有能力这样做,如访问主页时的 FireBug 屏幕截图所示:

详细的 Firebug 窗口

正如文档所述, Zend_Log_Writer_Firebug 将忽略所有writerParams,其中 defaultPriorityStyle 可能设置为 TRACE 或类似的东西。

现在我的问题是:有什么方法可以配置 Zend Framework 也发送额外的数据(如上图所示),而不必使用firePHPcore,而是使用 Zend Framework 本身附带的工具?

提前致以最诚挚的问候和感谢!

0 投票
1 回答
3380 浏览

php - Zend Framework 日志错误和其他文件

我需要通过创建插件或添加 application.ini 将错误、访问尝试等记录到文件中,错误保持默认不显示给最终用户

提前致谢。

0 投票
2 回答
4900 浏览

zend-framework - Zend_Log with multiple writers in application.ini

i have a logger in my config like this:

But i want to use it for only error logs. For another logs wanna use another log file. For that reason i added these lines to app.ini

But this is not working i wanna use differetn files for different priorities. But logger overrides the first logger. How ?

0 投票
1 回答
4525 浏览

debugging - Zend Log - 错误的日志优先级

当我尝试在我的引导程序中将 registerErrorHandler() 添加到我的日志配置时,它会给出以下错误:

引导程序.php

输出 Zend_Debug::dump($log):

谢谢帮助。

0 投票
1 回答
293 浏览

zend-framework - 如何将 Zend_Debug HTML 标记排除在 Zend_Log 之外

我使用 Zend_Debug::dump 将变量转储到 Zend_Log 文件中。如何让它停止将输出包装在 HTML 标记中?

该文档说“如果输出流被检测为 Web 演示文稿,则 var_dump() 的输出将使用 » htmlspecialchars() 进行转义并使用 (X)HTML 标记进行包装。” 为什么它认为我的日志文件是 Web 演示文稿?

转储函数的方法有一个布尔 $echo 标志。即使这是 FALSE,我也会在我的日志文件中获得 HTML 标记。

谢谢你的帮助!