2016-12-16 5 views
1

ユーザのためにシンプルなログシステムを実装する必要があります。ユーザーのバンドルアクション(例えば)で、私はこのようないくつかのサンプルでモノログを使いたいと思います。symfonyにログインするユーザのためだけにカスタムモノログファイルを作成するには

public function indexAction(){ 
     $logger = $this->get('logger'); 
     $logger->users('User {X} is logout'); 
} 

そして、それはログインし、例

答えて

3

のためにあなたがチャンネルでこれを達成することができ、このログ(users.log)特定のファイルに保存されます。

カスタムチャネルを作成できました(この場合はuser_channel)。 user_channelのログレコードのみを扱うハンドラuser_handlerが作成されます。コントローラでは、チャンネルの特定のロガーが要求されます。このロガーで記録されたものはすべてuser_channelになります。 は、そのメッセージだけをログファイルに入れます。

# app/config/config.yml 
monolog: 
    channels: ['user_channel'] 
    handlers: 
     user_handler: 
      level: debug 
      type:  stream 
      path:  '%kernel.logs_dir%/user.log' 
      channels: ['user_channel'] 
     main: 
      level: debug 
      type:  stream 
      path:  '%kernel.logs_dir%/log.log' 
      channels: ['!user_channel'] #In case you don't want other handler to receive user_channel messages 

次に、ログハンドラに直接アクセスできます。

public function indexAction(){ 
     $logger = $this->get('monolog.logger.user_channel'); 
     $logger->debug('User {X} is logout'); 
} 

ログエンティティは'%kernel.logs_dir%/user.log'に書き込まれます。

関連する問題