2013-09-30 5 views
2

내 웹 사이트에서 오류를 처리하려고합니다. 로그 파일에 각 오류를 기록하지만 로그 파일에 기록 된 메시지를 사용자 정의하는 방법을 알고 싶습니다. 지금은Yii Framework에서 로그 파일을 사용자 지정하는 방법은 무엇입니까?

,이 메시지가 :

2013년 9월 30일 10시 8분 59초 [오류] [exception.CException] 예외 MYDOMAIN의 메시지 '오류 검사'와 'CException' .com \ protected \ controllers \ SiteController.php : 234

도와 주시겠습니까?

+0

당신은 Yii :: log ($ message, $ level, $ category)를 사용할 수 있습니다; –

+0

답변 해 주셔서 감사합니다.하지만 다른 질문이 있습니다. "스택 추적"을 제거하는 방법은 무엇입니까? – Florent

+0

'index.php' 파일에서'define ('YII_TRACE_LEVEL') 또는 define ('YII_TRACE_LEVEL', 3);을 수정할 수 있다고 생각합니다. –

답변

2

수동 사용자 화 로그 메시지의 경우 사용자 고유의 LogRoute 클래스를 작성해야합니다. 구성 파일 구성보다

class MyFileLogRoute extends CFileLogRoute{ 
    protected function formatLogMessage($message,$level,$category,$time) 
    { 
     //enter code here your custom message format 
     return @date('Y/m/d H:i:s',$time)." [$level] [$category] $message\n"; 
    } 
} 

: 귀하의 상황에서 당신은 (예에서) 방법 formatLogMessage CFileLogRoute에서 클래스를 상속 오버라이드 (override)가 필요

 'log' => array(
      'class' => 'CLogRouter', 
      'routes' => array(
       array(
        'class' => 'MyFileLogRoute', 
        'levels' => 'error, warning, info', 
        'categories' => 'application.*', 
        'logPath' => dirname(__FILE__).'/../../../../../logs/', 
       ), 
       ... 

을 그리고 네 , @ragingprodigy right : index.php에 define('YII_DEBUG', 0) 또는 define('YII_TRACE_LEVEL', 0)을 설정하여 스택 추적 f를 제거 할 수 있습니다. ROM 로그 메시지