【问题标题】:Zend\Log Cannot Create Log FileZend\Log 无法创建日志文件
【发布时间】:2015-12-12 11:16:21
【问题描述】:

我正在学习 ZF2 并尝试使用 ZF2 建立一个宁静的 Web 服务架构。我在创建日志文件时遇到问题。

这是我的模块配置:

'service_manager' => array(
    'factories' => array(
        'loggingService' => function(\Zend\ServiceManager\ServiceManager $serviceManager) {
            $logger = new \Zend\Log\Logger();
            $writer = new \Zend\Log\Writer\Stream('/home/mani/logs/forum.log');
            $logger->addWriter($writer);
            return $logger;
        }
    )
)

在这里,我创建了一个记录器作为服务,并尝试使用控制器中的构造函数注入 logginService。

public function createService(ServiceLocatorInterface $serviceLocator) {

    $coreServiceLocator = $serviceLocator->getServiceLocator();
    $loggingService = $coreServiceLocator->get('loggingService');

    return new QuestionController($loggingService);
}

我认为它会起作用,但 ZF2 无法创建显示此消息的日志文件:

fopen(/home/mani/logs/forum.log): failed to open stream: No such file or directory

所以我的困惑是 ZF2 可以创建日志文件还是我们必须手动创建它?

【问题讨论】:

  • 您的 /home/mani/logs/ 目录是否存在并可被 http 用户写入?
  • 是的,我也尝试过创建目录,但我无法理解 http 用户的意思。我正在使用 mani 帐户在本地电脑上开发应用程序,我应该有权在 /home/mani 下创建任何目录或文件。

标签: php zend-framework2 zend-log


【解决方案1】:

我认为你的权限有问题,例如尝试使用 /tmp/app.log 更改路径。

谢谢

【讨论】:

  • 我没有权限问题,因为我使用 mani 帐户运行所有内容(apache、ide、mysql)并尝试在 /home/mani 目录下创建日志文件。如果是权限问题,我会收到权限被拒绝的消息。我也尝试过 /tmp/app.log 但产生了相同的错误消息。感谢您的支持。
  • 您好,您尝试进入 /tmp 了吗?谢谢!
  • 是的,我做到了。我想如果这是问题所在,我会收到有关许可的消息。谢谢
【解决方案2】:

请检查/home/mani/logs是否存在,否则不会创建,也会抛出同样的错误。还要给目录777

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    相关资源
    最近更新 更多