<?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>
        <defaults public="true" />

        <!-- 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>
            <argument>%kernel.default_error_level%</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>
            <argument>%kernel.default_error_level%</argument>
            <call method="pushProcessor">
                <argument type="service" id="monolog.processor.uid" />
            </call>
        </service>

        <service id="monolog.formatter.normalizer" class="Monolog\Formatter\NormalizerFormatter"/>
        <service id="monolog.handler.rotating_file.es" class="Monolog\Handler\RotatingFileHandler">
            <argument>%kernel.logs_dir%/es_%kernel.environment%.log</argument>
            <argument>14</argument>
            <argument>%shopware.es.logger.level%</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>%kernel.default_error_level%</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>

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

        <service id="debuglogger" alias="corelogger">
            <deprecated>The "%alias_id%" service id is deprecated since 5.7.0, use "corelogger" instead. Will be removed with 5.8.0</deprecated>
        </service>

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