日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

sentry php使用,实战Sentry

發布時間:2025/3/21 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sentry php使用,实战Sentry 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不管你用什么編程語言,都會面臨如何處理錯誤日志的問題。很多程序員對錯誤日志放任自流,直到出現故障了才追悔莫及,如果問我怎么辦,我會推薦 Sentry!

Sentry 是一個錯誤記錄和聚合的平臺,只要看看它漂亮的界面就會喜歡上它:

sentry

關于如何安裝 Sentry,官方文檔里已經給出了詳細的說明,建議大家仔細閱讀,一般通過 Virtualenv 來安裝 Sentry,具體可以參考:學習搭建Python環境。

提醒:我在安裝 7.5 的時候,測試有循環重定向,如果你也是可以安裝 7.4:

pip install sentry==7.4.3

安裝完畢后,假設我們要監控 PHP 錯誤日志,那么通常是在我們的業務代碼里嵌入官方的 PHP SDK,不過這樣肯定會影響到性能,好在我們可以通過錯誤日志曲線救國,只要定期掃描錯誤日志,把新生成的數據發送給 Sentry 就好了。

更新:我現在覺得原來的做法太吹毛求疵了,其實 Sentry 本身提供了 async 的調用方法,比如在 PHP SDK 里,只要設置?curl_method 為?async 或者 exec 即可。

如果發現 Sentry 中的錯誤計數器始終是一,即便有新的錯誤也不更新,那么多半是因為沒有權限生成?celerybeat-schedule 文件,缺省是生成在進程的 cwd 目錄中。

如何才能發現新生成的數據呢?需要記錄掃描到了哪個位置,可以通過 Logcheck 中提供的 logtail 或者 logtail2 來實現這個功能,至于它倆的區別,可以參見 man 文檔,簡單點兒說,logtail 在啟用文件被?rotate 的時候可能會丟數據,而 logtail2 不會。

require_once __DIR__ . '/raven-php/lib/Raven/Autoloader.php';

Raven_Autoloader::register();

$dsn = 'http://your/dsn';

$options = array(

'tags' => array(

'php_version' => phpversion(),

),

'trace' => false,

);

$pattern_content = '^\[([^]]+)] PHP ([^:]+):\s+(.+)';

$parrern_level = implode('|', array(

'debug',

'info',

'warning',

'error',

'fatal',

));

$client = new Raven_Client($dsn, $options);

while (($line = fgets(STDIN)) !== false) {

if (!preg_match("/{$pattern_content}/", $line, $match)) {

continue;

}

list($line, $timestamp, $level, $message) = $match;

$timestamp = gmdate('Y-m-d\TH:i:s\Z', strtotime($timestamp));

preg_match("/{$parrern_level}/i", $level, $match);

$level = isset($match[0]) ? $match[0] : 'error';

$client->captureMessage($message, array(), array(

'timestamp' => $timestamp,

'level' => $level,

));

}

?>

做好了以上這些準備工作,剩下的只要通過管道把新數據傳遞給 PHP 腳本即可:

shell> logtail -f /path/to/php/error/log | php /path/to/script

建議通過 crontab 定時運行,同時用 flock 保護一下。

總結

以上是生活随笔為你收集整理的sentry php使用,实战Sentry的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。