Bất kỳ lệnh tùy chỉnh kéo dài ContainerAwareCommand
, có quyền truy cập vào dịch vụ chứa Symfony của. Bạn có thể xác định một dịch vụ đăng nhập vào một kênh tùy chỉnh trong cấu hình của bạn.
<services>
<service id="console.logger" parent="monolog.logger_prototype">
<argument index="0">mychannel</argument>
</service>
</services>
Bạn có thể truy cập dịch vụ của bạn từ lệnh theo cách sau
$logger = $this->getContainer()->get('console.logger');
logger này sẽ đăng nhập với kênh như "mychannel".
FYI Dịch vụ nhật ký mặc định đăng nhập vào kênh "ứng dụng". Điều này có thể được nhìn thấy trong tập tin Symfony/Bundle/MonologBundle/Resources/config/monolog.xml
. Đây cũng là nơi dịch vụ logger
mặc định được xác định.
<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>
Nguồn
2013-01-23 06:26:58
Tôi muốn biết cách thực hiện điều này quá – HappyDeveloper
Đã trả lời trong http://stackoverflow.com/questions/8169114/how-to-write-logs-from-one-service-into-separate-file/8210892#8210892 – Seldaek
cảm ơn, tôi đã trả lời câu hỏi của mình bằng liên kết này. – Reuven