- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想设置一个日志文件,以便只有 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 调用的片段。
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 中收到调试soap 消息,这是不可取的。
最佳答案
根据CakeLog::config documentation
If you don't define any scopes an adapter will catch all scopes that match the handled levels.
因此,调试记录器写入类型为 'types' => array('notice', 'info', 'debug'), 的所有消息,
现在如何避免呢?看来你有两种方法:
使用 CakeLog::write 和自定义错误类型
CakeLog::write('soap', "REQUEST:\n". $client->__getLastRequest() . "\n");
在这种情况下,根据 CakeLog::write method 的文档
integer|string $type Type of message being written. When value is an integer or a string matching the recognized levels, then it will be treated log levels. Otherwise it's treated as scope.
范围和类型将相同并且具有“soap”值,因此,消息不会记录在调试记录器中,而只会记录在soap中。
关于cakephp - CakeLog 和范围 : Restricting scope to only one logger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17331705/
使用 CakeLog 时如何限制日志大小?我正在使用 Ubuntu,如果这有影响的话。 最佳答案 使用 logrotate,它包含在 Ubuntu 中。在 /etc/logrotate.d 中创建一个
我想设置一个日志文件,以便只有 SOAP 范围内的消息才会记录到该文件中。相反,我还想防止在调试和错误的默认日志中记录 SOAP 范围内的消息。 这是我当前在 bootstrap.php 中的设置。
我想设置一个日志文件,以便只有具有 soap 范围的消息才会记录到该文件中。相反,我还想防止针对默认的调试和错误日志记录具有 soap 范围的消息。 这是我当前在 bootstrap.php 中的设置
我在CakePHP 2.1上写了一个shell程序,想写日志。所以我写如下。 CakeLog::write(LOG_DEBUG, $msg); 我想将 $msg 写入 debug.log ,但它写信给
我已经在 windows server 2008 中安装了 cakephp 2.1,它给了我以下错误 Fatal Error: Class "CakeLog" not found in "C:\wam
我是一名优秀的程序员,十分优秀!