【发布时间】:2018-11-27 20:44:59
【问题描述】:
我的应用程序大量使用 log4php。我想开始向 AWS Kinesis 发送日志事件,但是我找不到这样做的方法,所以 我正在尝试编写自定义 Appender。
我复制了 LoggerAppenderConsole.php,撕掉了大部分内容,并编写了一些代码,调用了我的 appender LoggerAppenderKinesis.php。我在 LoggerAutoloader.php 中添加了一个条目,这样我的类就会自动加载。
现在,我测试一下。我在浏览器中运行 kinesisTest.php 文件,然后使用 PHPStorm 逐步执行代码。我知道问题出在哪里 但我不知道我需要做什么来修复它。
在 LoggerConfiguratorDefault::configureAppender() 函数中,我观察了三个 class_exists() 调用,一个检查我的 appender 和另外两个检查标准的。即
class_exists('LoggerAppenderFile') = true
class_exists('LoggerAppenderNull') = true
class_exists('LoggerAppenderKinesis') = error evaluating code
我检查了 everywhere 的拼写,一切看起来都很好。我的类文件编译。请注意,这仍然在 配置阶段;我什至还没有调用 \Logger::getLogger()。
我是否错过了其他地方的条目?我需要做什么才能让 log4php 在加载标准附加程序时看到我的自定义附加程序?我会担心它稍后会真正起作用。
【问题讨论】: