Wszelkie polecenia niestandardowego, który rozciąga ContainerAwareCommand
, ma dostęp do kontenera serwisowego symfony. Możesz zdefiniować usługę logującą się do niestandardowego kanału w konfiguracji.
<services>
<service id="console.logger" parent="monolog.logger_prototype">
<argument index="0">mychannel</argument>
</service>
</services>
można uzyskać dostępu do usługi z polecenia w następujący sposób
$logger = $this->getContainer()->get('console.logger');
Ten rejestrator będzie rejestrował z kanałem jako „mychannel”.
FYI Domyślna usługa rejestratora loguje się do kanału "aplikacja". Można to zobaczyć w pliku Symfony/Bundle/MonologBundle/Resources/config/monolog.xml
. Jest to również miejsce, gdzie zdefiniowana jest domyślna usługa logger
.
<services>
<service id="monolog.logger" parent="monolog.logger_prototype" public="false">
<argument index="0">app</argument>
</service>
<service id="logger" alias="monolog.logger" />
<service id="monolog.logger_prototype" class="%monolog.logger.class%" abstract="true">
<argument /><!-- Channel -->
</service>
</services>
Chcę wiedzieć, jak to zrobić: – HappyDeveloper
Odpowiedzi na http://stackoverflow.com/questions/8169114/how-to-write-logs-from-one-service-into-separate-file/8210892#8210892 – Seldaek
dzięki, odpowiedziałem na moje pytanie z tym łączem. – Reuven