Đăng nhập vào python là gì?

Bạn đã bao giờ gặp khó khăn khi gỡ lỗi mã Python của mình chưa?

Là một lập trình viên mới bắt đầu, bạn có thể đã sử dụng câu lệnh

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
3—để in ra các giá trị nhất định trong các lần chạy chương trình của mình—để kiểm tra xem mã có hoạt động như mong đợi không. Sử dụng các câu lệnh
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
3 để gỡ lỗi có thể hoạt động tốt đối với các chương trình Python nhỏ hơn. Tuy nhiên, khi bạn bắt đầu làm việc với các dự án lớn hơn và phức tạp hơn, bạn sẽ cần một nhật ký liên tục chứa nhiều thông tin hơn về hành vi của mã để giúp bạn gỡ lỗi và theo dõi lỗi một cách có hệ thống

Trong hướng dẫn này, bạn sẽ học cách thiết lập ghi nhật ký trong Python bằng mô-đun ghi nhật ký tích hợp. Bạn sẽ tìm hiểu kiến ​​thức cơ bản về ghi nhật ký, ghi nhật ký các giá trị biến và ngoại lệ, định cấu hình trình ghi nhật ký và trình định dạng tùy chỉnh, v.v.

Ngoài ra, bạn cũng sẽ tìm hiểu cách SDK Python của Sentry có thể giúp bạn giám sát các ứng dụng của mình và đơn giản hóa quy trình gỡ lỗi. Sentry tích hợp nguyên bản với mô-đun ghi nhật ký tích hợp sẵn của Python và cũng cung cấp thông tin chi tiết về cả lỗi và các vấn đề về hiệu suất trong ứng dụng của bạn

Bắt đầu nào…

Bắt đầu đăng nhập bằng Python

Python đi kèm với mô-đun ghi nhật ký mà chúng ta sẽ sử dụng trong hướng dẫn này. Vì vậy, bạn có thể tiếp tục và nhập nó vào môi trường làm việc của mình

import logging

Mô-đun ghi nhật ký tích hợp của Python cung cấp chức năng dễ sử dụng và năm cấp độ ghi nhật ký có mức độ nghiêm trọng tăng dần. gỡ lỗi (10), mức ghi nhật ký thấp nhất đến quan trọng (50), mức cao nhất

Hãy liệt kê các cấp độ ghi nhật ký khác nhau

Gỡ lỗi (10). Gỡ lỗi là mức ghi nhật ký thấp nhất;

Thông tin (20). Thông tin là mức ghi nhật ký thấp thứ hai được sử dụng để ghi lại thông tin trên một đoạn mã hoạt động như dự kiến

Cảnh báo (30). Cảnh báo được sử dụng để ghi lại các sự kiện mà bạn nên chú ý, vì chúng có khả năng gây ra sự cố trong hoạt động của ứng dụng trong tương lai. Nếu bạn không đặt mức ghi nhật ký một cách rõ ràng thì theo mặc định, quá trình ghi nhật ký sẽ bắt đầu từ mức cảnh báo

Lỗi (40). Đây là mức ghi nhật ký cao thứ hai; . một phần của ứng dụng không hoạt động như mong đợi và việc thực thi mã không thành công

Quan trọng (50). Như tên gợi ý, cấp độ ghi nhật ký này ghi lại một sự kiện quan trọng của nhiệm vụ và việc không khắc phục điều này có thể khiến ứng dụng ngừng hoạt động

Đoạn mã sau đây cho thấy cách bạn có thể sử dụng tất cả năm cấp độ ghi nhật ký với cú pháp.

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
5

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")

Bạn sẽ thấy rằng các thông báo tương ứng với cảnh báo, lỗi và nghiêm trọng được ghi vào bảng điều khiển, trong khi gỡ lỗi và thông tin thì không

WARNING:root:A WARNING
ERROR:root:An ERROR
CRITICAL:root:A message of CRITICAL severity

Điều này là do, theo mặc định, chỉ các thông báo tương ứng với cấp độ cảnh báo ghi nhật ký trở lên mới được ghi vào bảng điều khiển. Tuy nhiên, bạn có thể sửa đổi điều này bằng cách định cấu hình trình ghi nhật ký để bắt đầu ghi nhật ký từ một cấp độ cụ thể mà bạn chọn

Phương pháp đăng nhập vào bảng điều khiển này không hữu ích hơn việc sử dụng câu lệnh

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
3. Trong thực tế, bạn có thể muốn ghi các thông báo này vào một tệp nhật ký—chứa nhật ký qua các lần thực thi—mà sau đó bạn có thể sử dụng làm nhật ký gỡ lỗi của mình

Ghi chú. Trong ví dụ được giải thích trong hướng dẫn này, tất cả mã nằm trong tệp

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
7 và khi chúng tôi cấu trúc lại mã hiện có hoặc thêm các mô-đun mới, chúng tôi sẽ nêu rõ ràng
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
8 để giúp bạn theo dõi

Cách đăng nhập vào một tệp trong Python

Để thiết lập ghi nhật ký cơ bản vào một tệp, bạn có thể sử dụng hàm tạo

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
9, như minh họa bên dưới

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
0

Tiếp theo, hãy phân tích cú pháp trên để định cấu hình bộ ghi gốc

  • WARNING:root:A WARNING
    ERROR:root:An ERROR
    CRITICAL:root:A message of CRITICAL severity
    0. Đây là cấp độ bạn muốn bắt đầu đăng nhập. Nếu điều này được đặt thành thông tin, thì tất cả các thông báo tương ứng với gỡ lỗi sẽ bị bỏ qua

  • WARNING:root:A WARNING
    ERROR:root:An ERROR
    CRITICAL:root:A message of CRITICAL severity
    1. Tham số
    WARNING:root:A WARNING
    ERROR:root:An ERROR
    CRITICAL:root:A message of CRITICAL severity
    1 biểu thị đối tượng xử lý tệp. Bạn có thể chỉ định tên của tệp để đăng nhập

  • WARNING:root:A WARNING
    ERROR:root:An ERROR
    CRITICAL:root:A message of CRITICAL severity
    3. Đây là một tham số tùy chọn chỉ định chế độ mà bạn muốn làm việc với tệp nhật ký được chỉ định bởi tham số
    WARNING:root:A WARNING
    ERROR:root:An ERROR
    CRITICAL:root:A message of CRITICAL severity
    1. Đặt chế độ tệp thành ghi (_______55) sẽ ghi đè lên nhật ký mỗi khi mô-đun được chạy.
    WARNING:root:A WARNING
    ERROR:root:An ERROR
    CRITICAL:root:A message of CRITICAL severity
    3 mặc định là append (
    WARNING:root:A WARNING
    ERROR:root:An ERROR
    CRITICAL:root:A message of CRITICAL severity
    7) có nghĩa là bạn sẽ có một bản ghi nhật ký các sự kiện trong tất cả các lần chạy của chương trình

Sau khi chạy mô-đun

WARNING:root:A WARNING
ERROR:root:An ERROR
CRITICAL:root:A message of CRITICAL severity
8, bạn sẽ thấy rằng tệp nhật ký
WARNING:root:A WARNING
ERROR:root:An ERROR
CRITICAL:root:A message of CRITICAL severity
9 đã được tạo trong thư mục làm việc hiện tại

Đăng nhập vào python là gì?

Vì chúng tôi đặt mức ghi nhật ký thành thông tin, nên bản ghi nhật ký hiện chứa thông báo tương ứng với INFO

Đăng nhập vào python là gì?

Các bản ghi trong tệp nhật ký có định dạng.

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
00. Theo mặc định,
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
01 là bộ ghi nhật ký của
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
02, vì chúng tôi chưa định cấu hình bộ ghi nhật ký tùy chỉnh

Đăng nhập vào python là gì?

Ngoài thông tin cơ bản ở trên, bạn cũng có thể muốn ghi lại dấu thời gian mà một thông báo cụ thể đã được ghi lại để giúp kiểm tra nhật ký dễ dàng hơn. Bạn có thể làm điều này bằng cách chỉ định tham số

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
03 trong hàm tạo, như hình bên dưới

import logging
5

Đăng nhập vào python là gì?

Có nhiều thuộc tính bản ghi nhật ký khác mà bạn có thể sử dụng để tùy chỉnh cách các thông báo xuất hiện trong tệp nhật ký. Trong khi thiết lập bộ ghi nhật ký

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
02 như đã giải thích ở trên, vui lòng đảm bảo chỉ chạy
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
05 một lần—thường là ở phần đầu của chương trình trước khi ghi nhật ký. Các cuộc gọi tiếp theo không thay đổi bất cứ điều gì trừ khi bạn đặt tham số
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
06 thành
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
07

Ghi nhật ký các biến và ngoại lệ trong Python

Bây giờ, hãy sửa đổi tệp

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
7. Giả sử, có hai biến x và y và chúng tôi muốn tính giá trị của x/y. Chúng tôi biết rằng chúng tôi sẽ gặp phải ZeroDivisionError khi y = 0. Chúng tôi có thể xử lý trường hợp này như một ngoại lệ bằng cách sử dụng các khối
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
09 và
import logging
50

Tiếp theo, chúng tôi muốn ghi nhật ký ngoại lệ cùng với dấu vết ngăn xếp. Để làm điều này, bạn có thể sử dụng

import logging
51. Chạy đoạn mã sau để thấy rằng giá trị của các biến và kết quả được ghi lại dưới dạng INFO, cho biết rằng mã hoạt động như mong đợi

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
4

Đăng nhập vào python là gì?

Tiếp theo, đặt giá trị của y thành 0 và chạy lại mô-đun

Khi bạn kiểm tra tệp nhật ký pylog. log, bạn có thể thấy rằng một ngoại lệ đã được ghi lại cùng với dấu vết ngăn xếp

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
5

Đăng nhập vào python là gì?

Bước tiếp theo, hãy sửa đổi mã của chúng ta để có danh sách các giá trị x và y mà chúng ta muốn tính thương số x/y. Để đăng nhập một ngoại lệ, bạn cũng có thể sử dụng

import logging
52

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
7

Khi chạy đoạn mã trên, bạn sẽ thấy rằng tệp nhật ký hiện chứa thông tin về các sự kiện đó khi thực thi thành công cũng như lỗi khi xảy ra ngoại lệ

Đăng nhập vào python là gì?

Tùy chỉnh ghi nhật ký với Trình ghi nhật ký, Trình xử lý và Trình định dạng tùy chỉnh

Tiếp theo, hãy cấu trúc lại mã hiện có. Chúng ta sẽ định nghĩa một hàm riêng biệt

import logging
53

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
9

Chúng ta sẽ có định nghĩa hàm trên bên trong mô-đun

import logging
54. Trong mô-đun
WARNING:root:A WARNING
ERROR:root:An ERROR
CRITICAL:root:A message of CRITICAL severity
8, chúng ta sẽ chỉ có các lệnh gọi hàm. Hãy định cấu hình trình ghi nhật ký tùy chỉnh trong cả mô-đun
WARNING:root:A WARNING
ERROR:root:An ERROR
CRITICAL:root:A message of CRITICAL severity
8 và
import logging
54

Điều này được giải thích trong đoạn mã sau

▶️ Định cấu hình trình ghi nhật ký tùy chỉnh cho mô-đun

import logging
54

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
5

▶️ Định cấu hình trình ghi nhật ký tùy chỉnh cho mô-đun chính

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
0

Hãy phân tích đoạn mã trên để định cấu hình bộ ghi tùy chỉnh làm gì

Bước đầu tiên, chúng tôi thiết lập trình ghi nhật ký và cấp độ ghi nhật ký.

import logging
59 trả về bộ ghi có tên đó, nếu nó tồn tại; . Trong thực tế, bạn sẽ đặt tên của bộ ghi nhật ký thành biến đặc biệt
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
41, tương ứng với tên của mô-đun. Chúng tôi gán đối tượng logger cho một biến. We then set the desired logging level using
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
42

Tiếp theo, chúng tôi định cấu hình trình xử lý. Vì chúng tôi muốn ghi các sự kiện vào một tệp, chúng tôi định cấu hình một

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
43.
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
44 trả về một đối tượng xử lý tệp. Ngoài tên của tệp nhật ký, bạn có thể tùy chọn chỉ định chế độ. Trong ví dụ này, chúng tôi đặt chế độ ghi. Có các trình xử lý khác như StreamHandler, HTTPHandler, SMTPHandler, v.v.

We then create a formatter object using the syntax.

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
45. Trong ví dụ này, chúng tôi đặt
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
46, tên của trình ghi nhật ký (một chuỗi), trước định dạng bản ghi nhật ký mà chúng tôi đã có trước đó

Tiếp theo, chúng tôi thêm trình định dạng vào trình xử lý bằng cách sử dụng

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
47. Cuối cùng, chúng tôi thêm trình xử lý vào đối tượng logger bằng cách sử dụng
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
48

Sau đó, bạn có thể chạy mô-đun

WARNING:root:A WARNING
ERROR:root:An ERROR
CRITICAL:root:A message of CRITICAL severity
8 và kiểm tra các tệp nhật ký đã tạo

Đăng nhập vào python là gì?

Đăng nhập vào python là gì?

Ghi nhật ký Python. Thực hành tốt nhất

Cho đến nay, chúng tôi đã giới thiệu cách ghi nhật ký các biến, ngoại lệ và thiết lập trình ghi nhật ký tùy chỉnh. Tiếp theo, hãy liệt kê một số phương pháp hay nhất để ghi nhật ký

  • Đặt mức ghi nhật ký tối ưu. Nhật ký chỉ hữu ích khi bạn có thể sử dụng chúng để theo dõi các lỗi quan trọng cần được sửa. Tùy thuộc vào ứng dụng cụ thể, đảm bảo đặt mức ghi nhật ký tối ưu. Ghi nhật ký quá nhiều sự kiện có thể không tối ưu từ quan điểm gỡ lỗi vì khó lọc qua nhật ký để xác định các lỗi cần chú ý ngay lập tức

  • Định cấu hình logger ở cấp mô-đun. Khi bạn đang làm việc trên một ứng dụng có nhiều mô-đun, bạn nên xem xét việc định cấu hình trình ghi nhật ký cho từng mô-đun. Đặt tên của bộ ghi thành

    logging.debug("A DEBUG Message")
    logging.info("An INFO")
    logging.warning("A WARNING")
    logging.error("An ERROR")
    logging.critical("A message of CRITICAL severity")
    41 giúp xác định các mô-đun trong ứng dụng của bạn có vấn đề cần khắc phục

  • Bao gồm dấu thời gian và đảm bảo định dạng nhất quán. Luôn bao gồm dấu thời gian trong nhật ký vì chúng hữu ích trong việc truy ngược lại thời điểm xảy ra lỗi. Định dạng nhật ký của bạn một cách nhất quán trên các mô-đun khác nhau trong ứng dụng của bạn

  • Xoay các tệp nhật ký để tạo điều kiện gỡ lỗi dễ dàng hơn. Khi làm việc trên các ứng dụng lớn có nhiều mô-đun, có khả năng các tệp nhật ký của bạn sẽ có kích thước rất lớn. Vì rất khó lọc qua các nhật ký lớn như vậy để phát hiện lỗi, bạn nên xem xét việc xoay các tệp nhật ký. You can do this by using the

    logging.debug("A DEBUG Message")
    logging.info("An INFO")
    logging.warning("A WARNING")
    logging.error("An ERROR")
    logging.critical("A message of CRITICAL severity")
    51 with the syntax.
    logging.debug("A DEBUG Message")
    logging.info("An INFO")
    logging.warning("A WARNING")
    logging.error("An ERROR")
    logging.critical("A message of CRITICAL severity")
    52. Khi tệp nhật ký hiện tại đạt đến kích thước
    logging.debug("A DEBUG Message")
    logging.info("An INFO")
    logging.warning("A WARNING")
    logging.error("An ERROR")
    logging.critical("A message of CRITICAL severity")
    53, các nhật ký tiếp theo sẽ chuyển sang các tệp tiếp theo tùy thuộc vào giá trị của
    logging.debug("A DEBUG Message")
    logging.info("An INFO")
    logging.warning("A WARNING")
    logging.error("An ERROR")
    logging.critical("A message of CRITICAL severity")
    54. Nếu bạn đặt
    logging.debug("A DEBUG Message")
    logging.info("An INFO")
    logging.warning("A WARNING")
    logging.error("An ERROR")
    logging.critical("A message of CRITICAL severity")
    54 thành K, bạn sẽ nhận được K tệp sao lưu

Lợi ích và hạn chế của việc ghi nhật ký

Bây giờ chúng ta đã học được những kiến ​​thức cơ bản về ghi nhật ký trong Python, hãy cùng tìm hiểu những lợi ích và một số nhược điểm tiềm ẩn của việc ghi nhật ký

Chúng tôi đã thấy cách sử dụng ghi nhật ký trong Python cho phép chúng tôi duy trì nhật ký cho các mô-đun khác nhau trong một ứng dụng. Chúng tôi cũng có thể định cấu hình và tùy chỉnh ghi nhật ký khi cần. Tuy nhiên, điều này không phải là không có bất lợi. Ngay cả khi bạn đặt mức ghi nhật ký thành cảnh báo hoặc bất kỳ mức nào cao hơn, tệp nhật ký của bạn có thể nhanh chóng tăng kích thước khi bạn duy trì nhật ký liên tục trên tất cả các lần chạy của ứng dụng. Do đó, việc sử dụng tệp nhật ký để gỡ lỗi trở nên khó khăn

Ngoài ra, việc kiểm tra nhật ký lỗi rất khó khăn, đặc biệt khi thông báo lỗi không cung cấp đủ ngữ cảnh. Khi bạn thực hiện

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
56 mà không đặt
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
57 thành
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
07, rất khó để kiểm tra nguyên nhân cốt lõi của sự cố nếu các thông báo không hữu ích lắm

Mặc dù việc ghi nhật ký chỉ cung cấp thông tin chẩn đoán về những gì cần khắc phục trong ứng dụng của bạn, nhưng một công cụ giám sát như Sentry có thể cung cấp thông tin chi tiết hơn để giúp bạn khắc phục sự cố ứng dụng của mình một cách dễ dàng và đồng thời khắc phục các sự cố về hiệu suất

Trong phần tiếp theo, chúng ta sẽ xem xét cách bạn có thể tích hợp Sentry vào ứng dụng Python của mình để đơn giản hóa quy trình gỡ lỗi

Tích hợp Sentry trong ứng dụng Python của bạn

Bạn có thể cài đặt SDK Python của Sentry bằng trình quản lý gói pip

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
1

Sau khi bạn đã cài đặt SDK, bạn có thể nhập sentry_sdk và thêm các dòng mã sau để định cấu hình giám sát cho ứng dụng Python của mình

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
2

Như đã thấy ở trên, bạn cần có

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
59 để thiết lập giám sát. DSN là viết tắt của Tên nguồn dữ liệu và đó là nơi SDK của Sentry sẽ gửi các sự kiện trong ứng dụng của bạn. Bạn có thể tìm khóa DSN của mình bằng cách điều hướng đến Your-Project > Settings > Client Keys (DSN)

Sau khi chạy ứng dụng Python, bạn có thể truy cập Sentry. io và mở bảng điều khiển của dự án. Bạn sẽ có thể xem thông tin về số lượng lỗi đã ghi và các sự cố trong ứng dụng của bạn. Trong ví dụ này, ngoại lệ tương ứng với

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
70 đã được ghi lại

Đăng nhập vào python là gì?

Khi kiểm tra vấn đề một cách chi tiết, bạn có thể thấy rằng Sentry cung cấp thông tin chi tiết về nơi xảy ra ngoại lệ và các đối số

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
71 và
logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
72 khiến ngoại lệ xảy ra

Đăng nhập vào python là gì?

Điều hướng xuống dưới, bạn sẽ thấy rằng bạn có nhật ký tương ứng với thông tin và lỗi. Khi bạn định cấu hình giám sát với Sentry, sẽ có sự tích hợp ngầm với mô-đun ghi nhật ký. Nhớ lại rằng chúng tôi đặt mức ghi nhật ký thành thông tin. Do đó, Sentry ghi lại tất cả các sự kiện ở cấp độ thông tin trở lên dưới dạng breadcrumbs giúp dễ dàng truy tìm lỗi

Trái ngược với việc kiểm tra các tệp nhật ký lớn để tìm lỗi tiềm ẩn và thông tin khắc phục sự cố, Sentry cho phép bạn lọc các sự cố theo cấp độ, chẳng hạn như thông tin và lỗi. Điều này cho phép bạn ưu tiên các vấn đề theo mức độ nghiêm trọng của chúng và cũng tận dụng breadcrumbs để theo dõi nguồn gốc của vấn đề

Đăng nhập vào python là gì?

Trong ứng dụng ví dụ này, chúng tôi đã xử lý

logging.debug("A DEBUG Message")
logging.info("An INFO")
logging.warning("A WARNING")
logging.error("An ERROR")
logging.critical("A message of CRITICAL severity")
70 như một ngoại lệ. Trong các dự án lớn hơn, ngay cả khi chúng tôi không triển khai xử lý ngoại lệ như vậy, Sentry sẽ tự động cung cấp thông tin chẩn đoán về sự hiện diện của các ngoại lệ chưa được xử lý. Bạn cũng có thể theo dõi các vấn đề về hiệu suất trong mã bằng Sentry

Đăng nhập vào python là gì?

Bạn có thể tìm mã cho hướng dẫn này trong repo GitHub này

kết thúc

Trong hướng dẫn này, bạn đã học cách thiết lập ghi nhật ký bằng mô-đun ghi nhật ký tích hợp sẵn của Python. Bạn đã học những kiến ​​thức cơ bản về định cấu hình trình ghi nhật ký gốc và tùy chỉnh, cùng với các phương pháp hay nhất về ghi nhật ký. Ngoài ra, bạn cũng đã thấy cách bạn có thể tận dụng Sentry để giám sát các ứng dụng Python của mình – để nhận thông tin về các vấn đề về hiệu suất và các lỗi khác – đồng thời sử dụng tất cả các tính năng của mô-đun ghi nhật ký

Khi bạn làm việc trên ứng dụng Python tiếp theo của mình, hãy đảm bảo thực hiện ghi nhật ký và đăng ký dùng thử miễn phí Sentry để gỡ lỗi liền mạch

Đăng nhập bằng Python quan trọng như thế nào?

Ghi nhật ký là một cách để lưu trữ thông tin về tập lệnh của bạn và theo dõi các sự kiện xảy ra. Khi viết bất kỳ tập lệnh phức tạp nào bằng Python, ghi nhật ký là điều cần thiết để gỡ lỗi phần mềm khi bạn phát triển phần mềm . Nếu không đăng nhập, việc tìm nguồn gốc của sự cố trong mã của bạn có thể cực kỳ tốn thời gian.

Mục đích đăng nhập vào lập trình là gì?

Việc ghi nhật ký là điều cần thiết để hiểu hành vi của ứng dụng và gỡ lỗi các sự cố không mong muốn hoặc chỉ để theo dõi các sự kiện . Trong môi trường sản xuất, chúng tôi không thể gỡ lỗi nếu không có tệp nhật ký thích hợp vì chúng trở thành nguồn thông tin duy nhất để gỡ lỗi một số lỗi không liên tục hoặc không mong muốn.

Ghi nhật ký cơ bản là gì?

Hướng dẫn ghi nhật ký cơ bản. Ghi nhật ký là phương tiện theo dõi các sự kiện xảy ra khi một số phần mềm chạy . Nhà phát triển phần mềm thêm các cuộc gọi ghi nhật ký vào mã của họ để chỉ ra rằng một số sự kiện đã xảy ra.

Có nhật ký nào trong Python không?

Python đi kèm với mô-đun ghi nhật ký trong thư viện chuẩn có thể cung cấp một khung linh hoạt để gửi thông báo nhật ký từ các chương trình Python. Mô-đun này được các thư viện sử dụng rộng rãi và thường là điểm truy cập đầu tiên đối với hầu hết các nhà phát triển khi ghi nhật ký.