<?xml version="1.0" ?>

<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <parameters>
        <parameter key="monolog.logger.constant.critical" type="constant">Monolog\Logger::CRITICAL</parameter>
        <parameter key="monolog.logger.constant.error" type="constant">Monolog\Logger::ERROR</parameter>
        <parameter key="monolog.logger.constant.info" type="constant">Monolog\Logger::INFO</parameter>
    </parameters>

    <services>
        <!-- RotatingFileHandler handler-->
        <service id="monolog.processor.uid" class="Monolog\Processor\UidProcessor" public="false" />

        <service id="monolog.handler.rotating_file" class="Monolog\Handler\RotatingFileHandler" public="false">
            <argument>%kernel.logs_dir%/core_%kernel.environment%.log</argument>
            <argument>14</argument>
            <call method="pushProcessor">
                <argument type="service" id="monolog.processor.uid" />
            </call>
        </service>

        <service id="monolog.handler.rotating_file.plugin" class="Monolog\Handler\RotatingFileHandler" public="false">
            <argument>%kernel.logs_dir%/plugin_%kernel.environment%.log</argument>
            <argument>14</argument>
            <call method="pushProcessor">
                <argument type="service" id="monolog.processor.uid" />
            </call>
        </service>

        <!-- FingersCrossed handler-->
        <service id="monolog.handler.fingers_crossed" class="Monolog\Handler\FingersCrossedHandler" public="false">
            <argument type="service" id="monolog.handler.rotating_file" />
            <argument>%monolog.logger.constant.info%</argument>
        </service>

        <!-- Core logger -->
        <service id="monolog.handler.main" alias="monolog.handler.fingers_crossed" />
        <service id="corelogger" class="Shopware\Components\Logger">
            <argument>core</argument>
            <call method="pushHandler">
                <argument type="service" id="monolog.handler.main" />
            </call>
        </service>

        <!--Plugin logger -->
        <service id="pluginlogger" class="Shopware\Components\Logger">
            <argument>plugin</argument>
            <call method="pushHandler">
                <argument type="service" id="monolog.handler.rotating_file.plugin" />
            </call>
        </service>

        <!-- ChromePHP handler-->
        <service id="monolog.handler.chromephp" class="Shopware\Components\Log\Handler\ChromePhpHandler">
            <tag name="shopware.event_listener" method="onRouteStartUp" event="Enlight_Controller_Front_RouteStartup" />
        </service>

        <!-- FirePHP handler-->
        <service id="monolog.formatter.wildfire" class="Shopware\Components\Log\Formatter\WildfireFormatter" />
        <service id="monolog.handler.firephp" class="Shopware\Components\Log\Handler\FirePHPHandler">
            <call method="setFormatter">
                <argument type="service" id="monolog.formatter.wildfire" />
            </call>
            <tag name="shopware.event_listener" method="onRouteStartUp" event="Enlight_Controller_Front_RouteStartup" />
        </service>

        <!--Debug logger used for chrome/firefox logging -->
        <service id="debuglogger" class="Shopware\Components\Logger">
            <argument>debug</argument>
        </service>

        <service id="shopware.log.fileparser" class="Shopware\Components\Log\Parser\LogfileParser"/>
    </services>
 </container>
