存在几个允许您配置Raven_Client行为的选项。它们作为构造函数的第二个参数传递,并且应该是键值对的数组:
$client = new Raven_Client($dsn, array(
'option_name' => 'value',
))
一、其他设置
以下设置可供客户端使用:
name
一个字符串,用于覆盖服务器主机名的默认值。 默认为Raven_Compat :: gethostname()。
tags
要在此上下文中应用于事件的标记数组。
'tags' => array(
'php_version' => phpversion(),
)
$client->tags_context(array(
'php_version' => phpversion(),
));
release
您的应用程序的版本(例如git SHA)
'release' => MyApp::getReleaseVersion(),
$client->setRelease(MyApp::getReleaseVersion());
environment
运行应用程序的环境。
'environment' => 'production',
$client->setEnvironment('production');
app_path
应用程序代码的根路径。
'app_path' => app_root(),
$client->setAppPath(app_root());
excluded_app_paths
要从app_path检测中排除的路径。
'excluded_app_paths' => array(app_root() . '/cache'),
$client->setExcludedAppPaths(array(app_root() . '/cache'));
prefixes
应从文件名中剥离的前缀以创建相对路径。
'prefixes' => array(
'/www/php/lib',
),
$client->setPrefixes(array(
'/www/php/lib',
));
sample_rate
应用于事件的抽样因子。值0.00将拒绝发送任何事件,值为1.00将发送100%的事件。
// send 50% of events
'sample_rate' => 0.5,
send_callback
每当数据准备好发送时将调用的函数。在函数中,您可以改变数据,或者返回false以指示SDK不发送事件。
'send_callback' => function($data) {
// strip HTTP data
@unset($data['request']);
},
$client->setSendCallback(function($data) {
// dont send events if POST
if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
return false;
}
});
curl_method
默认为“同步”。
可用方法:
curl_path
默认为'curl'。
指定要与'exec'curl方法一起使用的curl二进制文件的路径。
transport
设置自定义传输以覆盖Sentry事件向上游发送的方式。
'transport' => function($client, $data) {
$myHttpClient->send(array(
'url' => $client->getServerEndpoint(),
'method' => 'POST',
'headers' => array(
'Content-Encoding' => 'gzip',
'Content-Type' => 'application/octet-stream',
'User-Agent' => $client->getUserAgent(),
'X-Sentry-Auth' => $client->getAuthHeader(),
),
'body' => gzcompress(jsonEncode($data)),
))
},
$client->setTransport(...);
trace
将此设置为false可禁用stacktraces中的反射跟踪(函数调用参数)。
logger
调整消息的默认记录器名称。默认为php。
ca_cert
CA证书捆绑包的路径。
默认为包含getsentry.com的公共包:./ data / cacert.pem
注意事项:
curl_ssl_version
要使用的SSL版本(2或3)。默认情况下,PHP会尝试自行确定,但在某些情况下,必须手动设置。
message_limit
默认为1024个字符。此值用于截断消息和帧变量。但是,不保证整个消息的长度将受此值的限制。
processors
在将数据发送到Sentry之前用于处理数据的类数组。默认情况下,使用Raven_Processor_SanitizeDataProcessor。
processorOptions
在将该处理器添加到Raven_Client使用的处理器列表之前,将传递给Raven_Processor子类中的setProcessorOptions()函数的选项
在Raven_Processor_SanitizeDataProcessor中覆盖正则表达式的示例如下:
'processorOptions' => array(
'Raven_Processor_SanitizeDataProcessor' => array(
'fields_re' => '/(user_password|user_token|user_secret)/i',
'values_re' => '/^(?:\d[ -]*?){15,16}$/'
)
)
timeout
以秒为单位向Sentry服务器发送请求的超时时间,默认为2秒。
'timeout' => 2,
excluded_exceptions
不应报告的异常,此列表中的异常扩展异常也将被排除,默认为空数组。
在下面的示例中,当您排除LogicException时,您还将排除BadFunctionCallException,因为它扩展了LogicException。
'excluded_exceptions' => array('LogicException'),
ignore_server_port
默认情况下,当服务器端口是非标准端口时,它将添加到已记录的URL(80,443)。将此设置为true将完全忽略服务器端口,并且将导致服务器端口永远不会附加到记录的URL。
'ignore_server_port' => true,
二、提供请求上下文
大多数时候你并没有直接向Raven打电话,但你仍然想提供一些额外的背景。此生命周期通常包含以下内容:
提供请求上下文有三种主要方法:
// bind the logged in user
$client->user_context(array('email' => 'foo@example.com'));
// tag the request with something interesting
$client->tags_context(array('interesting' => 'yes'));
// provide a bit of additional context
$client->extra_context(array('happiness' => 'very'));
如果您在生命周期中执行其他请求,则还需要确保清理上下文(以重置其状态):
$client->context->clear();