application.ini 中具有多个写入器的 Zend_Log
我的配置中有一个记录器,如下所示:
resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream = APPLICATION_PATH "/../logs/err.log"
resources.log.stream.writerParams.mode = "a"
resources.log.stream.filterName = "Priority"
resources.log.stream.filterParams.priority = 3
但我只想将它用于错误日志。对于另一个日志想使用另一个日志文件。因此,我将这些行添加到了 app.ini
resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream[] = APPLICATION_PATH "/../logs/debug.log"
resources.log.stream.writerParams.stream[] = APPLICATION_PATH "/../logs/info.log"
resources.log.stream.writerParams.mode = "a"
resources.log.stream.filterName = "Priority"
resources.log.stream.filterParams.priority[] = 7
resources.log.stream.filterParams.priority[] = 5
但这不起作用,我想对不同的优先级使用不同的文件。但记录器会覆盖第一个记录器。如何 ?
i have a logger in my config like this:
resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream = APPLICATION_PATH "/../logs/err.log"
resources.log.stream.writerParams.mode = "a"
resources.log.stream.filterName = "Priority"
resources.log.stream.filterParams.priority = 3
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
resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream[] = APPLICATION_PATH "/../logs/debug.log"
resources.log.stream.writerParams.stream[] = APPLICATION_PATH "/../logs/info.log"
resources.log.stream.writerParams.mode = "a"
resources.log.stream.filterName = "Priority"
resources.log.stream.filterParams.priority[] = 7
resources.log.stream.filterParams.priority[] = 5
But this is not working i wanna use differetn files for different priorities. But logger overrides the first logger. How ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
application.ini 示例:
在 bootstrap 中:
然后在代码中:
使用这种方式:
或这种方式:
或这种方式:
Example of application.ini:
In bootstrap:
Then in codes:
Use this way:
Or this way:
Or this way:
您可以使用过滤器来完成此操作。只需让较高优先级的事件通过过滤器,直到您想要记录它们即可。
http://framework.zend.com/manual/en/zend.log .filters.html
您的设置中的问题是您试图使用不应该使用的同一编写器。使用过滤器选择写入器并将某些日志文件与某些写入器关联,如示例的第二部分所示。
我认为类似的事情应该可以解决问题:
You can use filters to accomplish this. Just let higher priority events pass through the filters until you want to log them.
http://framework.zend.com/manual/en/zend.log.filters.html
What's wrong in your setup is that you are trying to use the same writer which you should not. Use the filters to choose the writers and associate certain log files with certain writers, as shown in the second part of the example.
I think something like that should do the trick: