我正在尝试通过在Mage :: app()$选项中设置log_dir
来自定义我的Magento日志目录,但它仍然记录到var/log/file.log
。
注意:我一般都无法在SO或网络上找到这些信息,所以我觉得需要这样做。
答案 0 :(得分:2)
事实证明(至少从1.6.2.0开始),Magento实际上并没有在它的log()方法中使用Mage::getBaseDir('log')
- 弱酱,对吗?
它使用Mage::getBaseDir('var')
并附加log
,然后附加您传入的文件名。
如果你想自定义目录,你必须弄脏手。例如,在我们的例子中,我们希望日志目录为:
var/username/log/file.log
所以这就是你如何破坏它。将它放在config.xml中,告诉Magento新的日志记录类:
<log>
<core>
<writer_model>Name_Module_Model_Zend_Log_Writer_Stream</writer_model>
</core>
</log>
然后,创建一个模型:
class Name_Module_Model_Zend_Log_Writer_Stream extends Zend_Log_Writer_Stream
然后,继续做你需要做的事情。就我而言,它是这样的:
public function __construct($streamOrUrl, $mode = NULL)
{
$newLogPath = $this->_workMyMagicOnLogFilePath($streamOrUrl, $mode);
return parent::__construct($newLogPath, $mode);
}