Mage :: log()不会登录Magento使用的所有文件?


11

我已经覆盖Sitemap.phpapp/code/local/Mage/Sitemap/Model/Sitemap.php。该文件似乎已被使用,如果我删除了所有内容,则出现预期的错误。

我复制了标准的完整内容,只做了Sitemap.php一次更改。我加了

public function generateXml() {
    Mage::log('test');
    ...
}

当我做这个别的地方,它打印testvar/log/system.log如预期,仅在这个文件中,它不记录消息。

任何帮助是极大的赞赏


编辑

使用

Mage::log('text', null, <file>, true);

也不起作用


系统配置中是否启用日志记录?是var/log/您的网络用户(可写apachehttpdwww-data等)
musicliftsme

记录工作在中SitemapController.php,所以是的。是的,var/log是可写的。谢谢您的想法
2015年

也许未加载Mage核心?也许尝试Mage :: app()
蒂姆·霍尔曼

@TimHallman没有核心的magento将如何工作?该站点工作正常
2015年

因为它是sitemap.php。尝试登录app/code/local/Mage/Sitemap/Model/Observer.php而不是Sitemap.php
蒂姆·霍尔曼

Answers:


11

我假设文件已加载,但未调用该方法。因此,只需die()在您的方法中设置一个断点(或坏方法a )并确保它被调用。

Mage::log至少使用$force参数初始化magento之后,写入其日志


是。谢谢。我想我将打开另一个问题,为什么我的generateXml没有加载。因为没有,所以它没有达到断点。
2015年

29

使用Mage::log('text here', null, 'system.log', true)
那应该一直工作。


或者例如一个sitemap.log,以防万一您不想将Sitemap日志与随机内容混合在一起。
朱利安·拉查

@JulienLachal。真正。文件名可以是任何东西。
马里斯(Marius)

请查看我的编辑内容,该方法也不起作用
2015年

2

另一个猜测-网站地图的生成通常是由cronjob触发的。如果您的cronjob在与Web用户不同的用户下运行,并且没有写到现有system.log文件的权限,那么您将不会获得任何条目。


是的,但是我通过在站点地图管理页面上单击“生成”来进行测试。所以我认为他应该得到许可。编辑:如果将权限设置为777,则无法正常工作
2015年


0

将此行放在任何函数或文件中

Mage :: log(“您的消息-”,null,'您的日志文件名.log');

该文件将在您的根文件夹路径中创建,例如

/ var / log /您的日志文件名.log

希望它对您有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.