スコープが soap のメッセージのみがそのファイルに記録されるように、ログ ファイルを設定したいと思います。逆に、デバッグとエラーのデフォルト ログに対して、soap のスコープを持つメッセージがログに記録されないようにしたいと考えています。
これがbootstrap.phpの現在の設定です。
CakeLog::config('soap', array(
'engine' => 'FileLog',
'types' => array('info','debug','error'),
'scopes' => array('soap'),
'file' => 'soap'
));
CakeLog::config('debug', array(
'engine' => 'FileLog',
'types' => array('notice', 'info', 'debug'),
'file' => 'debug',
));
CakeLog::config('error', array(
'engine' => 'FileLog',
'types' => array('warning', 'error', 'critical', 'alert', 'emergency'),
'file' => 'error',
));
これは、soap 呼び出しを行うライブラリの 1 つからのスニペットです。
CakeLog::debug("REQUEST:\n" . $client->__getLastRequest() . "\n", 'soap');
CakeLog::debug("RESPONSE:\n" . $client->__getLastResponse() . "\n", 'soap');
} catch (SoapFault $e) {
CakeLog::error(print_r($result,true), 'soap');
CakeLog::error('Exception: (' . $e->getCode() . ') ' . $e->getMessage(), 'soap');
if (isset($client)) {
CakeLog::error("Errored REQUEST:\n" . print_r($client->__getLastRequest(), true) . "\n", 'soap');
}
この現在の設定を行うと、debug.log と soap.log にデバッグ ソープ メッセージが表示されますが、これは望ましくありません。