我正在为 Joomla 开发一个扩展!目前我正在尝试使其与 3.0 兼容 - 与 3.0 一样,日志记录发生了一些变化(*)。基于这个相关问题的答案,我当前的代码如下所示:
JLog::addLogger(array(
'text_file' => 'plg_system_myplg.log.php'
));
JLog::add('blah blah log msg');
问题是日志也会转到显示给用户的消息 - 我想防止这种情况,我希望日志消息只转到日志文件。我认为这与JLog::add
作为第三个(可选)参数的“类别”有关,但我不知道要传递什么?
任何人都可以告诉我如何隐藏消息/或告诉我我是否在正确的类别中以及我应该使用什么值?
谢谢!
(*) 到目前为止,它实际上已经在 1.7 中发生了变化,但是在返回时调用 addEntry 的旧方法JLog::getInstance(...)
似乎已从 2.5 删除到 3.0。
编辑:认为我现在找到了方法;使用:
JLog::addLogger(array(
'text_file' => 'plg_system_myplg.log.php',
JLog::ALL,
'myplg'
));
JLog::add('blah blah log msg', JLog::INFO, 'myplg');
我所有的日志条目只进入我的日志文件(而不是显示给用户的消息)。但是,我也收到了一些弃用警告——一个关于我的代码,还有一些不相关的警告:
WARNING deprecated JAccess::getActions is deprecated. Use JAccess::getActionsFromFile or JAcces::getActionsFromData instead.
WARNING deprecated JSubMenuHelper::getEntries() is deprecated. Use JHtmlSidebar::getEntries() instead.
WARNING deprecated JSubMenuHelper::getFilters() is deprecated. Use JHtmlSidebar::getFilters() instead.
WARNING deprecated JSubMenuHelper::getAction() is deprecated. Use JHtmlSidebar::getAction() instead.
不知道该怎么做-为什么它们会出现在我的日志文件中,它们不应该转到默认的 error.log 文件而不是我的文件吗?