今天就跟大家聊聊有關(guān)利用Sentry如何實(shí)現(xiàn)監(jiān)控錯誤日志,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
為長壽等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及長壽網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、長壽網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!無論作為新手還是老手程序員在程序的開發(fā)過程中,代碼運(yùn)行時(shí)難免會拋出異常,而且項(xiàng)目在部署到測試、生產(chǎn)環(huán)境后,我們便不可能像在開發(fā)時(shí)那樣容易的及時(shí)發(fā)現(xiàn)處理錯誤了。一般我們都是在錯誤發(fā)生一段時(shí)間后,錯誤信息才會傳遞到開發(fā)人員那里,然后一頓操作查看程序運(yùn)行的日志,就熟練使用awk和grep去分析日志,但是往往我們會因?yàn)槿罩局腥鄙偕舷挛年P(guān)系,導(dǎo)致很難分析真正的錯誤是什么。
Sentry由此應(yīng)運(yùn)而生成為了解決這個(gè)問題的一個(gè)很好的工具,設(shè)計(jì)了諸多特性幫助開發(fā)者更快、更方面、更直觀的監(jiān)控錯誤信息。
關(guān)于日志管理
隨著不斷的開發(fā)應(yīng)用變得越來越復(fù)雜,輸出日志五花八門,有print的,有寫stdout的,有寫stderr的, 有寫logging的,也有自定義xxx.log的。那么這將導(dǎo)致平臺應(yīng)用日志分布在各個(gè)地方,無法統(tǒng)一管理。而且可能用的還不止一種開發(fā)語言,想規(guī)范和統(tǒng)一日志不是一件容易的事。所以這也是我們?yōu)槭裁词褂肧entry的原因,
Sentry的優(yōu)點(diǎn)
Sentry目前支持的語言眾多,下面展示一部分:
安裝和使用
Sentry支持部署到本地服務(wù)器,本博文不做過多介紹,可參照官方文檔進(jìn)行部署:
本地部署官方文檔
對于大所屬個(gè)人和小型企業(yè)推薦使用Sentry官方提供的云服務(wù),進(jìn)行快速搭建屬于自己的錯誤日志監(jiān)控系統(tǒng),只需要去官網(wǎng)進(jìn)行注冊一個(gè)Sentry賬號即可
1、注冊新賬號
官網(wǎng)地址
注冊新賬號地址
Sentry免費(fèi)版可用功能:
如果想享受更多功能和服務(wù)可以看這里:付費(fèi)版價(jià)格策略
2、安裝SDK
Sentry通過在應(yīng)用程序運(yùn)行時(shí)中使用SDK來捕獲數(shù)據(jù)。這些是特定于平臺的,允許Sentry深入了解您的應(yīng)用程序的工作方式。
使用pip以下命令安裝Python SDK:
pip install --upgrade sentry-sdk==0.10.2
3、配置SDK
在Sentry中完成項(xiàng)目設(shè)置后,您將獲得一個(gè)我們稱之為DSN或數(shù)據(jù)源名稱的值。它看起來很像標(biāo)準(zhǔn)URL,但它實(shí)際上只是Sentry SDK所需配置的表示。它由幾部分組成,包括協(xié)議,公鑰,服務(wù)器地址和項(xiàng)目標(biāo)識符。
在應(yīng)用程序的設(shè)置中盡早導(dǎo)入并初始化Sentry SDK:
import sentry_sdk
sentry_sdk.init("https://ae5f2eaff8404dbdb2e0d75f7466449d@sentry.io/我的") # 注冊賬號后在文檔中自動生成
4、捕捉你的第一個(gè)異常
您可以通過在應(yīng)用程序中插入除以零表達(dá)式來導(dǎo)致Python錯誤:
division_by_zero = 1 / 0
在云監(jiān)控系統(tǒng)中顯示的錯誤信息:
5、在django中的使用
安裝:sentry-sdk
pip install --upgrade 'sentry-sdk==0.10.2'
要配置SDK,請?jiān)趕ettings.py文件中使用Django集成對其進(jìn)行初始化:
import sentry_sdk from sentry_sdk.integrations.django import DjangoIntegration sentry_sdk.init( dsn="https://ae5f2eaff8404dbdb2e0d75f7466449d@sentry.io/我的", integrations=[DjangoIntegration()] )