Ahoj! Ako dodávateľ Filtering Flask som videl svoj spravodlivý podiel na problémoch, pokiaľ ide o spracovanie chybových hlásení v aplikáciách Flask. V tomto blogu vás prevediem tým, ako filtrovať tie otravné chybové hlásenia Flask, aby ste mohli mať plynulejší vývoj a nasadenie.
Prečo chybové hlásenia filtračnej banky?
Najprv si povedzme, prečo by ste dokonca chceli filtrovať chybové správy Flask. Keď vyvíjate aplikáciu Flask, často sa vám zobrazí množstvo chybových hlásení. Niektoré z nich sú veľmi užitočné na ladenie, napríklad keď sa snažíte zistiť, prečo konkrétna funkcia nefunguje. Ale iné môžu byť len hluk, najmä vo výrobnom prostredí.
Môžete mať napríklad nejaké neškodné varovania, ktoré sa neustále objavujú, alebo chybové hlásenia, ktoré obsahujú citlivé informácie. Filtrovanie týchto správ vám môže pomôcť zamerať sa na skutočné problémy a tiež chrániť bezpečnosť vašej aplikácie.
Pochopenie chybových hlásení banky
Skôr ako začnete filtrovať, musíte pochopiť, aké chybové hlásenia Flask generuje. Flask používa protokolovací systém Python na spracovanie chybových správ. Existujú rôzne úrovne protokolovania vrátane DEBUG, INFO, WARNING, ERROR a CRITICAL.
- DEBUG: Toto sú najpodrobnejšie správy, ktoré sa zvyčajne používajú počas vývoja na sledovanie chýb.
- INFO: Všeobecné informácie o fungovaní aplikácie.
- POZOR: Označuje potenciálne problémy, ktoré môžu v budúcnosti spôsobiť problémy.
- CHYBA: Niečo sa pokazilo, ale aplikácia môže naďalej bežať.
- KRITICKÝ: Závažná chyba, ktorá môže spôsobiť, že aplikácia prestane fungovať.
Flask štandardne zaznamenáva správy na úrovni INFO vo výrobe a na úrovni DEBUG vo vývoji.
Základné filtrovanie s protokolovaním
Najjednoduchší spôsob, ako filtrovať chybové správy Flask, je pomocou protokolovacieho modulu Pythonu. Úroveň protokolovania môžete nastaviť tak, aby sa zobrazovali iba správy, ktoré sú pre vás dôležité.
import logging from flask import Flask app = Flask(__name__) # Nastavte úroveň loggingu na WARNING logging.basicConfig(level=logging.WARNING) @app.route('/') def hello_world(): return 'Ahoj, svet!' if __name__ == '__main__': app.run()
V tomto príklade nastavujeme úroveň protokolovania na WARNING. To znamená, že sa budú zaznamenávať iba správy WARNING, ERROR a CRITICAL. Správy DEBUG a INFO budú ignorované.
Vlastné filtre
Niekedy možno budete chcieť byť pri filtrovaní konkrétnejší. Môžete si vytvoriť vlastné filtre na zaznamenávanie iba správ, ktoré zodpovedajú určitým kritériám.
import logging from flask import Flask app = Flask(__name__) class CustomFilter(logging.Filter): def filter(self, record): # Len správy protokolu, ktoré obsahujú slovo 'dôležité' vrátia 'dôležité' v record.getMessage() # Vytvorte záznamník a pridajte vlastný filter logger = logging.getFilter() custom_filter = Custom_filter.customadFilter @app.route('/') def hello_world(): logger.info('Toto je nedôležitá správa') logger.warning('Toto je dôležité upozornenie') return 'Ahoj, svet!' if __name__ == '__main__': app.run()
V tomto príklade sme vytvorili vlastný filter, ktorý umožňuje zaznamenávať iba správy obsahujúce slovo „dôležité“. Takže správa INFO nebude zaznamenaná, ale správa WARNING áno.
Filtrovanie vo výrobe
V produkčnom prostredí budete chcieť byť mimoriadne opatrní pri chybových hláseniach. Nechcete prezradiť žiadne citlivé informácie, ako sú heslá databázy alebo kľúče API.
Jedným zo spôsobov, ako to dosiahnuť, je použitie protokolovacieho formátovača na maskovanie citlivých informácií.
import logging from flask import Flask app = Flask(__name__) class SensitiveInfoFilter(logging.Filter): def filter(self, record): message = record.getMessage() # Nahraďte citlivé informácie hviezdičkami masked_message = message.replace('password', '****') record.msg = pridaj filter s maskovanou_správou return = maskovaný filter a log logging.getLogger() sensitive_info_filter = SensitiveInfoFilter() logger.addFilter(sensitive_info_filter) @app.route('/') def hello_world(): logger.error('Heslo databázy je heslo') return 'Ahoj, svet!' if __name__ == '__main__': app.run()
V tomto príklade nahrádzame slovo „heslo“ hviezdičkami vo všetkých chybových hláseniach. Týmto spôsobom, ak sa zaznamená chybové hlásenie, citlivé informácie nebudú odhalené.
Používanie nástrojov tretích strán
Existujú aj nástroje tretích strán, ktoré vám môžu pomôcť filtrovať a spravovať chybové správy Flask. Napríklad Sentry je populárny nástroj, ktorý dokáže zachytávať a zoskupovať chybové správy, čím uľahčuje analýzu a opravu problémov.
Ak chcete používať Sentry s Flask, musíte najprv nainštalovaťstrážnik - sdkbalík:
pip install sentry-sdk[flask]
Potom ho môžete integrovať do aplikácie Flask:
import sentry_sdk z sentry_sdk.integrations.flask import FlaskIntegration z banky import Flask sentry_sdk.init( dsn="VAŠE_DSN_HERE", integrations=[FlaskIntegration()] ) app = Flask(__name__) @app.route('/') Chyba testu'def' hello_world: návrat 'Ahoj, svet!' if __name__ == '__main__': app.run()
Sentry zachytí chybové hlásenia a odošle ich na svoj informačný panel, kde si ich môžete prezerať a spravovať.


Naše produkty na filtračné banky
Ako dodávateľ filtračných baniek ponúkame rad vysokokvalitných filtračných baniek pre potreby vašich laboratórií. Pozrite si našeLaboratórne číre sklenené filtračné banky s hornou trubicouaLaboratórne sklenené Erlenmeyerove filtračné banky kužeľového tvaru s hornou trubicou. Tieto banky sú vyrobené z odolného skla a sú navrhnuté tak, aby poskytovali účinné filtrovanie.
Záver
Filtrovanie chybových správ Flask je dôležitou súčasťou vývoja a údržby aplikácie Flask. Či už používate základné filtre protokolovania, vlastné filtre alebo nástroje tretích strán, môžete svoje chybové hlásenia lepšie spravovať a zabezpečiť.
Ak máte záujem o naše filtračné banky alebo máte akékoľvek otázky týkajúce sa filtrovania chybových správ na bankách, neváhajte sa obrátiť na diskusiu o obstarávaní. Sme tu, aby sme vám pomohli nájsť najlepšie riešenia pre vaše potreby.
Referencie
- Dokumentácia protokolovania Pythonu
- Dokumentácia banky
- Strážna dokumentácia
