gpt4 book ai didi

Joomla >1.7 从浏览器中隐藏日志消息

转载 作者:行者123 更新时间:2023-12-01 15:10:02 24 4
gpt4 key购买 nike

我正在为 Joomla 开发一个扩展!;目前我正在尝试使其与 3.0 兼容 - 与 3.0 一样,日志记录发生了一些变化 (*)。基于答案from this related question ,我当前的代码如下所示:

JLog::addLogger(array(
'text_file' => 'plg_system_myplg.log.php'
));
JLog::add('blah blah log msg');

问题是日志也会转到向用户显示的消息 - 我想防止这种情况,我希望日志消息只转到日志文件。我认为它与 JLog::add 作为第三个(可选)参数的“类别”有关,但我不知道要传递什么?

谁能告诉我如何隐藏消息/或告诉我类别是否正确以及我应该使用什么值?

谢谢!

(*) 据我目前收集到的信息,它实际上已经随着 1.7 发生了变化,但是在 JLog::getInstance(...) 返回时调用 addEntry 的旧方法似乎有已从 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 文件而不是我的文件吗?

最佳答案

这是我正在使用的,适用于 Joomla 1.5 - 3.2:

if(version_compare(JVERSION,'1.7.0','ge')) {
jimport('joomla.log.log'); // Include the log library (J1.7+)
$priorities = JLog::ALL ^ JLog::WARNING; // exclude warning (because of deprecated)
// In J3.0 we need to ensure that log messages only go to our file, thus use the categories (already supported in J2.5)
if(version_compare(JVERSION,'2.5.0','ge')) {
$logCategory = 'com_mycomponent';
JLog::addLogger(array('text_file' => $logFileName), $priorities, $logCategory);
JLog::add($msg, JLog::INFO, $logCategory);
}else{
JLog::addLogger(array('text_file' => $logFileName), $priorities);
JLog::add($msg, JLog::INFO);
}
} else {
// Joomla! 1.6 and 1.5
jimport('joomla.error.log'); // Include the log library
$log = &JLog::getInstance($logFileName);
$log->addEntry(array('comment' => $msg, 'level' => 'INFO'));
}

这显示了获取弃用消息的技巧。

是的,您必须为您的消息添加一个类别,以确保它们不会显示为系统消息。

关于Joomla >1.7 从浏览器中隐藏日志消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14389103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com