Php ZF2:配置新的抽象工厂

Php ZF2:配置新的抽象工厂,php,zend-framework2,Php,Zend Framework2,在ZendFramework2.2.0中,有一些。我想配置一个数据库记录器,但我不知道如何配置。该链接给出了以下配置流记录器的示例: 'log' => array( 'Application\Log' => array( 'writers' => array( array( 'name' => 'stream', 'priority' => 100

在ZendFramework2.2.0中,有一些。我想配置一个数据库记录器,但我不知道如何配置。该链接给出了以下配置流记录器的示例:

'log' => array(
    'Application\Log' => array(
        'writers' => array(
            array(
                'name'     => 'stream',
                'priority' => 1000,
                'options'  => array(
                    'stream' => 'data/logs/app.log',
                ),
            ),
        ),
    ),
),
我已尝试将配置复制到
config/global.php
,并尝试将其嵌套在
服务管理器
键下。它说我应该能够直接从服务管理器获取日志记录程序,但我收到一个错误,它说它无法创建
Application\Log
的实例。我是不是误解了什么?应该在哪里添加配置

另外,在我的具体示例中,我想使用数据库编写器。如何将其配置为与上述类似的样式(即使用阵列)?查看
Zend\Writer\Db
时,需要传递一个适配器实例。我不知道如何在不创建工厂的情况下做到这一点,因为我的数据库适配器本身使用的是一个抽象工厂
Zend\Db\Adapter\AdapterServiceFactory
。这似乎需要我访问配置文件中的服务管理器来获取数据库适配器,以便将其注入db writer。我甚至不确定这是否可能


我可以创建一个定制工厂,但我喜欢这些一致的抽象工厂;我只是对如何使用它们感到困惑。

您还需要启用创建记录器的抽象工厂,例如,使用以下配置

// ... snip ...
'service_manager' => array(                                                 
    'abstract_factories' => array(                                          
        'Zend\Log\LoggerAbstractServiceFactory',                            
    ),                                                                      
)
// ... snip ...