2016-12-15 9 views
2

私はそうのようなログを開く方法とロガークラスをテストしてい:PHPUnitはsyslogメッセージを受け取りますか?

openlog($this->identifier, $this->option, $this->facility); 
syslog($level, $message) 
closelog(); 

Iユニットは、私のロガーをテストするとき、私のロガーはに書き込み$facilityが現在LOCAL0

として設定されている私を得ます以下のメッセージが表示されます:

Broadcast message from [email protected]: 

phpserver7.0[9125]: Logger message 

このメッセージをPHPUnitまたは私のコードで抑制するにはどうすればよいですか?

編集:

を:

これが唯一のウィキペディアは述べ0

https://en.wikipedia.org/wiki/Syslog#Severity_level

の重大度レベルを意味し、私は「緊急」の重大度でメッセージをログに記録する際に発生するようです

このレベルはアプリケーションで使用しないでください。

しかし、それはPSR-3ロガーの要約の一部ですが、私はPHPUnitでメッセージを抑制できるようにしたいと考えています。

答えて

1

あなたのテストメソッドでは、出力バッファを出力を生成する呼び出しの周りにラップすることによって、出力を抑制することができます。例:

/** 
* @preserveGlobalState disabled 
* @runInSeparateProcess 
*/ 
public function testOutputCanSend() 
{ 
    ob_start(); 

    // Do some stuff here that outputs directly, e.g 
    openlog($this->identifier, $this->option, $this->facility); 
    syslog($level, $message) 
    closelog(); 

    ob_end_clean(); 
} 
関連する問題