私はこれが古い投稿であることを知っていますが、symfony/monolog-bundle 2.1.xを使って同様の必要性に遭遇しました。私は他のスレッドで必要なものを正確に見つけることができなかったので、ここで私の解決策を文書化しています。これは、カスタムチャネルを使用するロガーコンテナを作成することでした。 SRC /アクメ/ MyBundle /モノローグ/ UserActionsLoggerで私のバンドルのservices.yml
acme.logger.user_actions:
class: Acme\MyBundle\Monolog\UserActionsLogger
arguments: ['@logger']
tags:
- { name: monolog.logger, channel: user_actions }
で
monolog:
handlers:
user_actions:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%-user-actions.log"
level: info
channels: [user_actions]
config.ymlで
。
$userActionsLogger = $this->get('acme.logger.user_actions');
:あなたが選択的に任意のコントローラのサービスとしてロガーコンテナを使用することができ、
acme.user.authenticationhandler:
class: %acme.user.authenticationhandler.class%
public: false
arguments: ['@router', '@security.context', '@acme.logger.user_actions']
または:PHP
<?php
namespace Acme\MyBundle\Monolog;
class UserActionsLogger
{
public $logger;
public function __construct($logger)
{
$this->logger = $logger;
}
}
は、その後、あなたはと別のサービスにロガーコンテナを注入しますか、
次に、実際のロガーにアクセスできます。
$userActionsLogger->logger->info('A thing happened!')
+1をgithubで作成するには –
@JohannesKlauß明日になるバンドルの今後のリリースには、このbtwの適切な修正が含まれています。 – Seldaek