1

私はSymfony2の学習を始めましたが、現在、個別にログに記録したいコマンドを扱っています。

私の目標は、カスタムロガーを使用して、コマンドのクリーンなログファイルを取得することです。xml構成ファイルを使用するプロジェクトで作業していますが、一部の.ymlパラメーターとオプションを変換する方法がわかりません。

1つのサービスから別のファイルにログを書き込む方法を読みましたか?動作する別のログファイルを取得しました。

<?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">

    <services>
        <service id="myproject_mycommand.logger" class="Symfony\Bridge\Monolog\Logger">
            <argument>myproject_mycommand.logger</argument>
            <call method="pushHandler">
                <argument type="service" id="myproject_mycommand.logger_handler" />
            </call>
        </service>

        <service id="myproject_mycommand.logger_handler" class="Monolog\Handler\StreamHandler">
            <argument>%kernel.logs_dir%/my_custom_file_log.log</argument>
        </service>
    </services>
</container>

Symfony2を見た後:さまざまなファイルにログインしているときにプロセッサを使用する「[%% datetime %%] %% message %% \ n」のように、必要なフィールドのみをモノログラインフォーマッタに渡そうとしています。

私は次のようなものを追加する必要があると思います:

container
...
    xmlns:monolog="http://symfony.com/schema/dic/monolog"
... 

<service id="myproject_mycommand.logger.formatter" class="Monolog\Formatter\LineFormatter">
    <argument>"[%%datetime%%] %%message%%\n"</argument>
</service>

しかし、xmlファイルでこの単純なフォーマッターを構成する方法がわかりません。

ご協力いただきありがとうございます!

4

1 に答える 1

1

FormatterInterfaceフォーマッタを作成し、それを拡張して実装する必要がありformatますformatBatch

次に、サービス定義を追加します

<service id="myproject_mycommand.logger.formatter" class="MyBundle\Formatter\XmlFormatter">
    <argument>some arguments if you need one</argument>
</service>

<service id="myproject_mycommand.logger_handler" class="Monolog\Handler\StreamHandler">
    <argument>%kernel.logs_dir%/my_custom_file_log.log</argument>
    <call method="setFormatter">
        <argument type="service" id="myproject_mycommand.logger.formatter"/>
    </call>    
</service>

それについてです。フォーマット方法のアイデアについては、モノログバンドルソース内のさまざまなフォーマッターの例を確認できます。

于 2012-11-18T13:28:49.893 に答える