【发布时间】:2012-02-06 22:16:26
【问题描述】:
我正面临 CakePHP 2.1 的一个奇怪行为:
我有一个方法,$this->Time->getTime();,它总是记录一个动作,然后返回 true。从浏览器调用时,它按预期工作:记录操作,然后返回 true。
我创建了一个 shell,TimeShell,如果$this->Time->getTime(); 返回 true,我仅在其中记录另一个操作。现在,奇怪的是记录了第二个操作,因此该方法返回 true,但该方法中的操作(显然必须运行,因为它传递了它并返回 true)没有记录。
为什么从 shell 调用方法时没有记录第一个操作? (如果有帮助,shell 会通过我服务器上的 cron 作业运行)
编辑
经过进一步测试,我发现如果我不记录第二个动作(shell 中的那个),那么第一个动作($this->Time->getTime();)会被正确记录。但我不明白为什么 Cake 只记录应该记录的最后一个动作。
此外,似乎只有 DatabaseLogger 以这种方式运行,FileLog 记录这两个操作。很奇怪。
【问题讨论】:
-
Cakephp 2.1 是一个测试版。也许不是最好的主意。
-
我知道,但我需要它的一些新功能。你相信这可能是问题吗?在更新日志中没有任何关于 shells/console/logs 的内容。
标签: shell cakephp logging cron cakephp-2.1