2016-11-18 11 views
2

私はLaravelプロジェクトにPHPユニットテストのセットを持っており、ターミナルでテストを実行するとエラーを表示しようとしません。私はすべての例外に対してerror_log()関数を使って手動でエラーを記録しています。私はエラーを表示しないようにphp.iniエラーパラメータを設定しようとしましたが、うまくいかないようです。error_log関数のエラー設定のPHP効果

ini_set('log_errors', 0); 
ini_set('error_reporting', 0); 
ini_set('display_errors', 0); 
ini_set('display_startup_errors', 0); 

error_log("This is an exception"); 

上記の設定後も、コンソールに文字列This is an exceptionが表示されています。私はここで何か間違っていますか? PHPのバージョンは7です。事前に感謝します。

+1

。 CLIの '/ etc/php5/cli/php.ini'とAPACHE'/etc/php5/apache2/php.ini'のためのものです。正しいファイルを編集していますか? – cmorrissey

+0

PHP関数@ cmorrisseyを使用して、実行時にini設定を変更しています。 –

答えて

1

error_log ini指示文は、error_log()機能の出力先を制御します。ディレクティブが設定されていない場合、CLIはstderrに出力します。さらに、何らかの理由でディレクティブを設定できない場合は、error_log()関数に余分なパラメータを渡して出力先を制御することができます。

あなたのエラーが/var/log/php.logに出て書きたかったのであれば、例えば、次の2つのオプションがあります。

のiniディレクティブ:

ini_set('error_log', '/var/log/php.log'); 

error_log('destination set by error_log directive'); 

のerror_logパラメータ:

error_log(
    'destination set by parameters'.PHP_EOL, // this method doesn't auto append EOL; must add it manually 
    3, // destination type; 3 = file 
    '/var/log/php.log' // destination file 
); 

詳細は次のドキュメントをご覧ください:
もっとして1 `php.ini`ファイルが存在することができ error_log()機能
error_logのiniディレクティブ

+1

ありがとう@patricus! 'error_log'指示文が設定されておらず、ログは' stderr'に出力されていました。私は適切なログファイルのパスを設定し、それは働いた! –

関連する問題