Kako filtrirati poruke o pogrešci u aplikaciji Flask?

Jan 16, 2026Ostavite poruku

Bok tamo! Kao dobavljač Filtering Flaska, vidio sam dosta problema kada je u pitanju rukovanje porukama o pogrešci u Flask aplikacijama. U ovom blogu ću vas provesti kroz to kako filtrirati te neugodne Flask poruke o pogrešci, tako da možete imati lakši razvoj i iskustvo implementacije.

Zašto Filter Flask poruke o pogrešci?

Prvo, razgovarajmo o tome zašto uopće želite filtrirati poruke o pogrešci Flaska. Kada razvijate aplikaciju Flask, često ćete dobiti hrpu poruka o pogrešci. Neki od njih su super korisni za otklanjanje pogrešaka, primjerice kada pokušavate otkriti zašto određena funkcija ne radi. Ali drugi mogu biti samo buka, posebno u proizvodnom okruženju.

Na primjer, možda imate neka bezopasna upozorenja koja se neprestano pojavljuju ili poruke o pogrešci koje sadrže osjetljive informacije. Filtriranje ovih poruka može vam pomoći da se usredotočite na stvarne probleme i zaštititi sigurnost vaše aplikacije.

Razumijevanje Flask poruka o pogrešci

Prije nego počnete filtrirati, morate razumjeti kakvu vrstu poruka o pogrešci Flask generira. Flask koristi Python sustav za bilježenje za obradu poruka o greškama. Postoje različite razine zapisivanja, uključujući DEBUG, INFO, WARNING, ERROR i CRITICAL.

  • DEBUG: Ovo su najdetaljnije poruke, koje se obično koriste tijekom razvoja za pronalaženje grešaka.
  • INFO: Opće informacije o radu aplikacije.
  • UPOZORENJE: Označava potencijalne probleme koji bi mogli uzrokovati probleme u budućnosti.
  • POGREŠKA: Nešto nije u redu, ali aplikacija i dalje može nastaviti raditi.
  • KRITIČNO: Ozbiljna pogreška koja može uzrokovati prestanak rada aplikacije.

Prema zadanim postavkama, Flask bilježi poruke na razini INFO u proizvodnji i razini DEBUG u razvoju.

Osnovno filtriranje s zapisom

Najjednostavniji način filtriranja poruka o pogrešci Flaska je korištenje Python modula za bilježenje. Možete postaviti razinu zapisivanja tako da prikazuje samo poruke koje su vam važne.

import logging from flask import Flask app = Flask(__name__) # Postavite razinu logginga na WARNING logging.basicConfig(level=logging.WARNING) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run()

U ovom primjeru, postavljamo razinu zapisivanja na UPOZORENJE. To znači da će se bilježiti samo UPOZORENJE, POGREŠKA i KRITIČNE poruke. DEBUG i INFO poruke će se zanemariti.

Prilagođeni filtri

Ponekad ćete možda htjeti biti precizniji s filtriranjem. Možete izraditi prilagođene filtre kako biste zabilježili samo poruke koje odgovaraju određenim kriterijima.

import logging from flask import Flask app = Flask(__name__) class CustomFilter(logging.Filter): def filter(self, record): # Samo logging poruke koje sadrže riječ 'important' vraćaju 'important' u record.getMessage() # Stvorite logger i dodajte prilagođeni filter logger = logging.getLogger() custom_filter = CustomFilter() logger.addFilter(custom_filter) @app.route('/') def hello_world(): logger.info('Ovo je nevažna poruka') logger.warning('Ovo je važno upozorenje') return 'Hello, World!' if __name__ == '__main__': app.run()

U ovom smo primjeru izradili prilagođeni filtar koji dopušta samo bilježenje poruka koje sadrže riječ 'važno'. Dakle, poruka INFO neće biti zabilježena, ali poruka UPOZORENJE hoće.

Filtriranje u proizvodnji

U proizvodnom okruženju trebali biste biti posebno oprezni s porukama o pogreškama. Ne želite izložiti osjetljive podatke, poput lozinki baze podataka ili API ključeva.

Jedan od načina da to učinite je korištenje formatera za bilježenje za maskiranje osjetljivih informacija.

import logging from flask import Flask app = Flask(__name__) class SensitiveInfoFilter(logging.Filter): def filter(self, record): message = record.getMessage() # Zamijeni osjetljive informacije zvjezdicama masked_message = message.replace('password', '****') record.msg = masked_message return True # Kreiraj logger i dodaj logger osjetljivih informacija filter = logging.getLogger() sensitive_info_filter = SensitiveInfoFilter() logger.addFilter(sensitive_info_filter) @app.route('/') def hello_world(): logger.error('Lozinka baze podataka je lozinka') return 'Hello, World!' if __name__ == '__main__': app.run()

U ovom primjeru zamjenjujemo riječ 'lozinka' zvjezdicama u svim porukama o pogrešci. Na taj način, ako se zabilježi poruka o pogrešci, osjetljive informacije neće biti otkrivene.

Korištenje alata treće strane

Postoje i alati trećih strana koji vam mogu pomoći u filtriranju i upravljanju Flask porukama o pogreškama. Na primjer, Sentry je popularan alat koji može uhvatiti i grupirati poruke o pogreškama, što olakšava analizu i rješavanje problema.

Da biste koristili Sentry s Flaskom, prvo trebate instaliratistražar - sdkpaket:

pip instalacija sentry-sdk[flask]

Zatim ga možete integrirati u svoju aplikaciju Flask:

import sentry_sdk from sentry_sdk.integrations.flask import FlaskIntegration from flask import Flask sentry_sdk.init( dsn="YOUR_DSN_HERE", integrations=[FlaskIntegration()] ) app = Flask(__name__) @app.route('/') def hello_world(): raise ValueError('This je testna pogreška') vrati 'Hello, World!' if __name__ == '__main__': app.run()

Sentry će uhvatiti poruke o pogrešci i poslati ih na svoju nadzornu ploču, gdje ih možete pregledavati i upravljati njima.

Laboratory Clear Glass Filtering Flasks With Upper TubulatureClear glass Filtering Flask

Naši proizvodi od boca za filtriranje

Kao dobavljač tikvica za filtriranje, nudimo niz visokokvalitetnih tikvica za filtriranje za vaše laboratorijske potrebe. Provjerite našeLaboratorijske tikvice za filtriranje od prozirnog stakla s gornjom cjevčicomiLaboratorijske staklene Erlenmeyerove tikvice za filtriranje stožastog oblika s gornjom tubulacijom. Ove tikvice izrađene su od izdržljivog stakla i dizajnirane su za učinkovito filtriranje.

Zaključak

Filtriranje Flask poruka o pogrešci važan je dio razvoja i održavanja Flask aplikacije. Bez obzira koristite li osnovne filtre za bilježenje, prilagođene filtre ili alate treće strane, svoje poruke o pogreškama možete učiniti lakšim za upravljanje i sigurnijima.

Ako ste zainteresirani za naše boce za filtriranje ili imate bilo kakvih pitanja o filtriranju poruka o pogrešci Flaska, slobodno se obratite za raspravu o nabavi. Ovdje smo da vam pomognemo pronaći najbolja rješenja za vaše potrebe.

Reference

  • Dokumentacija Python zapisivanja
  • Flask Dokumentacija
  • Stražarska dokumentacija