mirror of
https://github.com/beestat/app.git
synced 2025-06-02 21:26:38 -04:00
Added logging of API errors to Sentry.
This commit is contained in:
parent
974d847707
commit
64d0a72252
@ -691,6 +691,55 @@ final class cora {
|
|||||||
'error_extra_info' => $this->error_extra_info
|
'error_extra_info' => $this->error_extra_info
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
|
$session = session::get_instance();
|
||||||
|
$user_id = $session->get_user_id();
|
||||||
|
|
||||||
|
if(isset($this->request['api_key']) === true) {
|
||||||
|
$api_user_resource = new api_user();
|
||||||
|
$api_users = $api_user_resource->read(['api_key' => $this->request['api_key']]);
|
||||||
|
$api_user_id = $api_users[0]['api_user_id'];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$api_user_id = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Send data to Sentry for error logging.
|
||||||
|
$data = [
|
||||||
|
'event_id' => str_replace('-', '', exec('uuidgen -r')),
|
||||||
|
'timestamp' => date('c'),
|
||||||
|
'logger' => 'cora',
|
||||||
|
'platform' => 'php',
|
||||||
|
'level' => 'error',
|
||||||
|
'tags' => [
|
||||||
|
'api_call' => 'foo',
|
||||||
|
'error_code' => $error_code
|
||||||
|
],
|
||||||
|
'extra' => [
|
||||||
|
'user_id' => $user_id,
|
||||||
|
'api_user_id' => $api_user_id,
|
||||||
|
'error_file' => $error_file,
|
||||||
|
'error_line' => $error_line,
|
||||||
|
'error_trace' => $error_trace
|
||||||
|
],
|
||||||
|
'exception' => [
|
||||||
|
'type' => 'Exception',
|
||||||
|
'value' => $error_message,
|
||||||
|
'handled' => false
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
||||||
|
exec(
|
||||||
|
'curl ' .
|
||||||
|
'-H "Content-Type: application/json" ' .
|
||||||
|
'-H "X-Sentry-Auth: Sentry sentry_version=7, sentry_key=' . $this->setting->get('sentry_key') . '" ' .
|
||||||
|
'--silent ' . // silent; keeps logs out of stderr
|
||||||
|
'--show-error ' . // override silent on failure
|
||||||
|
'--max-time 10 ' .
|
||||||
|
'--connect-timeout 5 ' .
|
||||||
|
'--data \'' . json_encode($data) . '\' ' .
|
||||||
|
'"https://sentry.io/api/' . $this->setting->get('sentry_project_id') . '/store/" > /dev/null &'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -163,6 +163,12 @@ final class setting {
|
|||||||
'influx_database_username' => '',
|
'influx_database_username' => '',
|
||||||
'influx_database_password' => '',
|
'influx_database_password' => '',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Key and project id obtained from the Sentry DSN. See sentry.io.
|
||||||
|
*/
|
||||||
|
'sentry_key' => '',
|
||||||
|
'sentry_project_id' => '',
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether or not SSL is required.
|
* Whether or not SSL is required.
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user