为了满足我的需求,我创建了一个扩展 JLogLoggerFormattedtext 的自定义记录器类。 该文件位于 /libraries/joomla/log/logger 目录中。 这样我就可以像任何其他记录器类一样使用它并且它工作得很好:
JLog::addLogger(
array(
'logger' => 'formattedtextsmt',
'text_file' => 'my_comp_site.log.php',
),
[..]
);
但是现在,我想将其从我开发的组件或专用库中分离出来,以便可以从管理 UI 正确安装。
当我的记录器类不在 joomla/log/logger 目录中时,如何使 addLogger 可用?
在 Joomla 4 中,您可以使用
Log::registerLogger()
方法来实现此目的。例如,(假设您的客户记录器类存储在组件的站点文件夹中并使用下面的命名空间):
Log::registerLogger('formattedtextsmt', 'MyNamespace\Component\MyComponentName\Site\Log\FormattedTextSmt');