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