2014-10-20 5 views
0

현재 데이터베이스 (추가 된 사용자, 업데이트 된 사용자 ...)와의 모든 상호 작용을 하나의 테이블에 기록하고 있습니다.다른 데이터베이스 테이블에 (모노) 로그 쓰기

내 userService에서 예 :

public function addUserAction() 
{ 
    $this->logger->alert("Added user!"); 

    // Code that adds the user to the database (not relevant for my question) 
    // ... 
} 

public function updateUserAction($user) 
{ 
    $this->logger->alert("Updated user!"); 

    // Code that updates the user to the database (not relevant for my question) 
    // ... 
} 

지금 나는 다음과 같은 별도의 테이블을 가지고 싶습니다 나는 하나 개의 채널과 하나의 핸들러를 구성한 등 log_added_users, log_updated_users을 ...

내 config.yml 로거를 userService에 삽입하고 내 채널에 태그를 추가했습니다.

services: 
    userService: 
     class: Acme\Services\UserService 
     arguments: ["@logger"] 
     tags: 
      - { name: monolog.logger, channel: my_channel } 

특정 로그 항목을 추가 할 테이블을 어디에 정의해야하는지 궁금합니다. 내가 삽입 된 로거 (위의 config snippet에서 볼 수 있듯이)를 정의 할 수있는만큼 더 많은 채널이 필요 없다고 생각합니다.

그래서 더 많은 핸들러 (db 테이블 당 하나)를 추가하려고합니다. 로그가 쓰여지는 동안 모든 핸들러를 거쳐 모든 테이블에 동일한 로그가 추가됩니다.

다른 서비스에서 내 updateUserAction을 넣으면 다른 채널을 사용할 수 있습니까?

어떤 도움에 감사드립니다 :) 난 당신이 작성하는 모든 채널, 서비스가 당신을 위해 자동으로 작성되는 것을 발견

답변

0

. 그래서 나는 다른 로거를 userService에 삽입하고 새로운 채널에 태그를 붙였습니다.

내가 예를 들어 말할 수있는 그런 식으로 :

public function addUserAction() 
{ 
    $this->logger->alert("user added"); 
} 

public function updateUserAction($user) 
{ 
    $this->updateLogger->alert("user updated"); 
}