1

我正在尝试通过log_dir在 Mage::app() $options 中设置来自定义我的 Magento 的日志目录,但它仍在登录到var/log/file.log.

注意:我无法在 SO 或一般网络上很容易地找到此信息,所以我觉得需要 SO'd。

4

1 回答 1

2

所以事实证明(至少从 1.6.2.0 开始),Magento 实际上并没有使用Mage::getBaseDir('log')它的 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);
}
于 2012-07-18T23:16:27.397 回答