Trăn lọc chân thành

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ọ để cho biết rằng một số sự kiện đã xảy ra. Một sự kiện được mô tả bằng một thông báo mô tả có thể tùy chọn chứa dữ liệu thay đổi [i. e. dữ liệu có khả năng khác nhau đối với mỗi lần xảy ra sự kiện]. Các sự kiện cũng có một tầm quan trọng mà nhà phát triển gán cho sự kiện đó;

Khi nào nên sử dụng ghi nhật ký¶

Ghi nhật ký cung cấp một tập hợp các chức năng tiện lợi để sử dụng ghi nhật ký đơn giản. Đây là

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
1,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
2,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
3,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
4 và
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
5. Để xác định thời điểm sử dụng ghi nhật ký, hãy xem bảng bên dưới, trong đó nêu rõ công cụ tốt nhất để sử dụng cho từng nhóm nhiệm vụ chung đối với từng nhóm

Nhiệm vụ bạn muốn thực hiện

Công cụ tốt nhất cho nhiệm vụ

Hiển thị đầu ra của bảng điều khiển để sử dụng thông thường tập lệnh hoặc chương trình dòng lệnh

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
6

Báo cáo các sự kiện xảy ra trong quá trình hoạt động bình thường của một chương trình [e. g. để giám sát trạng thái hoặc điều tra lỗi]

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
7 [hoặc
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
8 cho đầu ra rất chi tiết cho mục đích chẩn đoán]

Đưa ra cảnh báo về một sự kiện thời gian chạy cụ thể

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
9 trong mã thư viện nếu sự cố có thể tránh được và ứng dụng khách phải được sửa đổi để loại bỏ cảnh báo

--log=INFO
0 nếu ứng dụng khách không thể làm gì về tình huống này, nhưng sự kiện vẫn cần được lưu ý

Báo cáo lỗi liên quan đến một sự kiện thời gian chạy cụ thể

Tăng một ngoại lệ

Báo cáo triệt tiêu lỗi mà không đưa ra ngoại lệ [e. g. trình xử lý lỗi trong quy trình máy chủ chạy dài]

--log=INFO
1,
--log=INFO
2 hoặc
--log=INFO
3 phù hợp với lỗi cụ thể và miền ứng dụng

Các chức năng ghi nhật ký được đặt tên theo mức độ hoặc mức độ nghiêm trọng của các sự kiện mà chúng được sử dụng để theo dõi. Các mức tiêu chuẩn và khả năng áp dụng của chúng được mô tả dưới đây [theo thứ tự mức độ nghiêm trọng tăng dần]

Mức độ

Khi nó được sử dụng

--log=INFO
4

Thông tin chi tiết, thường chỉ được quan tâm khi chẩn đoán sự cố

--log=INFO
5

Xác nhận rằng mọi thứ đang hoạt động như mong đợi

--log=INFO
6

Một dấu hiệu cho thấy một điều gì đó bất ngờ đã xảy ra, hoặc một số vấn đề trong tương lai gần [e. g. 'dung lượng ổ đĩa thấp']. Phần mềm vẫn hoạt động bình thường

--log=INFO
7

Do một vấn đề nghiêm trọng hơn, phần mềm đã không thể thực hiện một số chức năng

--log=INFO
8

Một lỗi nghiêm trọng, chỉ ra rằng chương trình có thể không thể tiếp tục chạy

Mức mặc định là

--log=INFO
6, có nghĩa là chỉ các sự kiện ở mức này trở lên mới được theo dõi, trừ khi gói ghi nhật ký được định cấu hình để thực hiện theo cách khác

Các sự kiện được theo dõi có thể được xử lý theo nhiều cách khác nhau. Cách đơn giản nhất để xử lý các sự kiện được theo dõi là in chúng ra bàn điều khiển. Một cách phổ biến khác là ghi chúng vào một tệp đĩa

Một ví dụ đơn giản¶

Một ví dụ rất đơn giản là

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
9

Nếu bạn nhập những dòng này vào một tập lệnh và chạy nó, bạn sẽ thấy

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
0

in ra trên bàn điều khiển. Thông báo

--log=INFO
5 không xuất hiện vì mức mặc định là
--log=INFO
6. Thông báo được in bao gồm chỉ báo về cấp độ và mô tả về sự kiện được cung cấp trong cuộc gọi ghi nhật ký, tôi. e. 'Coi chừng. ’. Đừng lo lắng về phần 'root' bây giờ. nó sẽ được giải thích sau. Đầu ra thực tế có thể được định dạng khá linh hoạt nếu bạn cần điều đó;

Đăng nhập vào một tập tin¶

Một tình huống rất phổ biến là ghi lại các sự kiện ghi nhật ký trong một tệp, vì vậy hãy xem xét điều đó tiếp theo. Hãy chắc chắn thử cách sau trong trình thông dịch Python mới bắt đầu và không chỉ tiếp tục từ phiên được mô tả ở trên

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
3

Đã thay đổi trong phiên bản 3. 9. Đối số mã hóa đã được thêm vào. Trong các phiên bản Python cũ hơn hoặc nếu không được chỉ định, mã hóa được sử dụng là giá trị mặc định được sử dụng bởi

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
42. Mặc dù không được hiển thị trong ví dụ trên, nhưng đối số lỗi giờ đây cũng có thể được chuyển, đối số này xác định cách xử lý lỗi mã hóa. Để biết các giá trị khả dụng và mặc định, hãy xem tài liệu về
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
42.

Và bây giờ nếu chúng ta mở tệp và xem những gì chúng ta có, chúng ta sẽ tìm thấy các thông điệp tường trình

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö

Ví dụ này cũng cho thấy cách bạn có thể đặt mức ghi nhật ký đóng vai trò là ngưỡng theo dõi. Trong trường hợp này, vì chúng tôi đặt ngưỡng thành

--log=INFO
4, nên tất cả thư đã được in

Nếu bạn muốn đặt mức ghi nhật ký từ tùy chọn dòng lệnh, chẳng hạn như

--log=INFO

và bạn có giá trị của tham số được truyền cho

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
45 trong một số loglevel biến, bạn có thể sử dụng

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
4

để lấy giá trị mà bạn sẽ chuyển đến

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
46 thông qua đối số level. Bạn có thể muốn kiểm tra lỗi bất kỳ giá trị đầu vào nào của người dùng, có thể như trong ví dụ sau

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
2

Cuộc gọi đến

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
46 phải đến trước bất kỳ cuộc gọi nào đến
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
1,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
2, v.v. Nếu không, các chức năng đó sẽ gọi
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
46 cho bạn với các tùy chọn mặc định. Vì nó được dự định là một cơ sở cấu hình đơn giản một lần, nên chỉ cuộc gọi đầu tiên mới thực sự làm được bất kỳ điều gì. các cuộc gọi tiếp theo thực sự là không hoạt động

Nếu bạn chạy tập lệnh trên nhiều lần, các thông báo từ các lần chạy liên tiếp sẽ được thêm vào tệp ví dụ. đăng nhập. Nếu bạn muốn mỗi lần chạy bắt đầu lại, không nhớ các thông báo từ các lần chạy trước đó, bạn có thể chỉ định đối số chế độ tệp, bằng cách thay đổi cuộc gọi trong ví dụ trên thành

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
7

Đầu ra sẽ giống như trước, nhưng tệp nhật ký không còn được thêm vào, vì vậy các thông báo từ các lần chạy trước đó sẽ bị mất

Ghi nhật ký từ nhiều mô-đun¶

Nếu chương trình của bạn bao gồm nhiều mô-đun, đây là ví dụ về cách bạn có thể tổ chức đăng nhập vào chương trình đó

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
8

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
9

Nếu bạn chạy myapp. py, bạn sẽ thấy điều này trong ứng dụng của tôi. đăng nhập

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
00

hy vọng là những gì bạn đang mong đợi để xem. Bạn có thể khái quát hóa điều này thành nhiều mô-đun, sử dụng mẫu trong mylib. py. Lưu ý rằng đối với mẫu sử dụng đơn giản này, bạn sẽ không biết, bằng cách xem trong tệp nhật ký, thông báo của bạn đến từ đâu trong ứng dụng của bạn, ngoài việc xem mô tả sự kiện. Nếu bạn muốn theo dõi vị trí thư của mình, bạn cần tham khảo tài liệu ngoài cấp độ hướng dẫn – xem Hướng dẫn ghi nhật ký nâng cao .

Ghi nhật ký dữ liệu biến¶

Để ghi dữ liệu biến, hãy sử dụng chuỗi định dạng cho thông báo mô tả sự kiện và nối thêm dữ liệu biến làm đối số. Ví dụ

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
01

sẽ hiển thị

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
02

Như bạn có thể thấy, việc hợp nhất dữ liệu biến đổi vào thông báo mô tả sự kiện sử dụng kiểu định dạng chuỗi % cũ. Cái này là để tương thích ngược. gói ghi nhật ký trước các tùy chọn định dạng mới hơn, chẳng hạn như

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
21 và
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
22. Các tùy chọn định dạng mới hơn này được hỗ trợ nhưng việc khám phá chúng nằm ngoài phạm vi của hướng dẫn này. xem Sử dụng các kiểu định dạng cụ thể trong ứng dụng của bạn để biết thêm thông tin.

Thay đổi định dạng của thông báo được hiển thị¶

Để thay đổi định dạng được sử dụng để hiển thị tin nhắn, bạn cần chỉ định định dạng bạn muốn sử dụng

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
03

cái nào sẽ in

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
04

Lưu ý rằng 'gốc' xuất hiện trong các ví dụ trước đó đã biến mất. Để biết toàn bộ những thứ có thể xuất hiện trong chuỗi định dạng, bạn có thể tham khảo tài liệu về thuộc tính LogRecord , nhưng để sử dụng đơn giản, bạn chỉ cần . Nó được mô tả trong phần sau.

Hiển thị ngày/giờ trong tin nhắn¶

Để hiển thị ngày và giờ của một sự kiện, bạn sẽ đặt '%[asctime]s' trong chuỗi định dạng của mình

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
05

nên in một cái gì đó như thế này

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
06

Định dạng mặc định để hiển thị ngày/giờ [hiển thị ở trên] giống như ISO8601 hoặc RFC 3339. Nếu bạn cần kiểm soát nhiều hơn đối với định dạng ngày/giờ, hãy cung cấp đối số datefmt cho

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
23, như trong ví dụ này

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
07

mà sẽ hiển thị một cái gì đó như thế này

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
08

Định dạng của đối số datefmt giống như được hỗ trợ bởi

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
24

Bước tiếp theo¶

Điều đó kết thúc phần hướng dẫn cơ bản. Nó là đủ để giúp bạn thiết lập và chạy với ghi nhật ký. Còn rất nhiều điều nữa mà gói ghi nhật ký cung cấp, nhưng để tận dụng tốt nhất, bạn sẽ cần đầu tư thêm một chút thời gian để đọc các phần sau. Nếu bạn đã sẵn sàng, hãy lấy một ít đồ uống yêu thích của bạn và tiếp tục

Nếu nhu cầu ghi nhật ký của bạn đơn giản, thì hãy sử dụng các ví dụ trên để kết hợp đăng nhập vào tập lệnh của riêng bạn và nếu bạn gặp sự cố hoặc không hiểu điều gì đó, vui lòng đăng câu hỏi lên trang tổng hợp. lang thang. nhóm Usenet python [có sẵn tại https. //các nhóm. Google. com/diễn đàn/#. diễn đàn/comp. lang thang. python] và bạn sẽ sớm nhận được trợ giúp

Bạn vẫn ở đây chứ? . Sau đó, bạn có thể xem Sổ ghi nhật ký nấu ăn .

Hướng dẫn ghi nhật ký nâng cao¶

Thư viện ghi nhật ký sử dụng phương pháp mô-đun và cung cấp một số danh mục thành phần. trình ghi nhật ký, trình xử lý, bộ lọc và trình định dạng

  • Trình ghi nhật ký hiển thị giao diện mà mã ứng dụng trực tiếp sử dụng

  • Trình xử lý gửi bản ghi nhật ký [được tạo bởi trình ghi nhật ký] đến đích thích hợp

  • Bộ lọc cung cấp cơ sở chi tiết hơn để xác định bản ghi nhật ký nào sẽ xuất ra

  • Trình định dạng chỉ định bố cục của các bản ghi nhật ký trong đầu ra cuối cùng

Thông tin sự kiện nhật ký được truyền giữa các trình ghi nhật ký, trình xử lý, bộ lọc và trình định dạng trong một phiên bản

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
25

Ghi nhật ký được thực hiện bằng cách gọi các phương thức trên các thể hiện của lớp

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
26 [sau đây gọi là logger]. Mỗi phiên bản có một tên và chúng được sắp xếp theo khái niệm trong một hệ thống phân cấp không gian tên bằng cách sử dụng các dấu chấm [dấu chấm] làm dấu phân cách. Ví dụ: trình ghi nhật ký có tên ‘scan’ là cha của trình ghi nhật ký ‘scan. văn bản', 'quét. html' và 'quét. pdf'. Tên trình ghi nhật ký có thể là bất kỳ thứ gì bạn muốn và cho biết khu vực của ứng dụng nơi bắt nguồn thông báo đã ghi

Một quy ước tốt để sử dụng khi đặt tên cho trình ghi nhật ký là sử dụng trình ghi nhật ký cấp mô-đun, trong mỗi mô-đun sử dụng ghi nhật ký, được đặt tên như sau

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
09

Điều này có nghĩa là các tên trình ghi nhật ký theo dõi hệ thống phân cấp gói/mô-đun và rõ ràng là các sự kiện được ghi lại chỉ từ tên trình ghi nhật ký bằng trực giác

Gốc của hệ thống phân cấp của logger được gọi là logger gốc. Đó là trình ghi nhật ký được sử dụng bởi các hàm

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
1,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
2,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
3,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
4 và
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
5, chỉ gọi phương thức cùng tên của trình ghi gốc. Các hàm và phương thức có cùng chữ ký. Tên của trình ghi nhật ký gốc được in là 'root' trong đầu ra đã ghi

Tất nhiên, có thể đăng nhập tin nhắn đến các đích khác nhau. Hỗ trợ được bao gồm trong gói để ghi thông báo nhật ký vào tệp, vị trí HTTP GET/POST, email qua SMTP, ổ cắm chung, hàng đợi hoặc cơ chế ghi nhật ký dành riêng cho hệ điều hành như nhật ký hệ thống hoặc nhật ký sự kiện Windows NT. Các điểm đến được phục vụ bởi các lớp xử lý. Bạn có thể tạo lớp đích nhật ký của riêng mình nếu bạn có các yêu cầu đặc biệt không được đáp ứng bởi bất kỳ lớp trình xử lý tích hợp nào

Theo mặc định, không có điểm đến nào được đặt cho bất kỳ thông báo ghi nhật ký nào. Bạn có thể chỉ định đích [chẳng hạn như bảng điều khiển hoặc tệp] bằng cách sử dụng

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
46 như trong các ví dụ hướng dẫn. Nếu bạn gọi các hàm
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
1,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
2,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
3,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
4 và
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
5, chúng sẽ kiểm tra xem có điểm đến nào được đặt không;

Định dạng mặc định do

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
46 đặt cho thư là

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
30

Bạn có thể thay đổi điều này bằng cách chuyển một chuỗi định dạng tới

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
46 với đối số từ khóa định dạng. Để biết tất cả các tùy chọn liên quan đến cách tạo chuỗi định dạng, hãy xem Đối tượng định dạng .

Quy trình ghi nhật ký¶

Luồng thông tin sự kiện nhật ký trong bộ ghi nhật ký và trình xử lý được minh họa trong sơ đồ sau

Người khai thác gỗ¶

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
26 đối tượng có ba công việc. Đầu tiên, chúng hiển thị một số phương thức cho mã ứng dụng để ứng dụng có thể ghi lại thông báo khi chạy. Thứ hai, các đối tượng logger xác định thông báo nhật ký nào sẽ hoạt động dựa trên mức độ nghiêm trọng [cơ sở lọc mặc định] hoặc đối tượng lọc. Thứ ba, các đối tượng logger chuyển các thông điệp tường trình có liên quan tới tất cả các trình xử lý nhật ký quan tâm

Các phương pháp được sử dụng rộng rãi nhất trên các đối tượng logger thuộc hai loại. cấu hình và gửi tin nhắn

Đây là những phương pháp cấu hình phổ biến nhất

  • DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    82 chỉ định thông báo nhật ký có mức độ nghiêm trọng thấp nhất mà trình ghi nhật ký sẽ xử lý, trong đó gỡ lỗi là mức độ nghiêm trọng tích hợp sẵn thấp nhất và nghiêm trọng là mức độ nghiêm trọng tích hợp sẵn cao nhất. Ví dụ: nếu mức độ nghiêm trọng là THÔNG TIN, thiết bị ghi nhật ký sẽ chỉ xử lý các thông báo THÔNG TIN, CẢNH BÁO, LỖI và QUAN TRỌNG và sẽ bỏ qua các thông báo GỠ LỖI

  • DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    83 và
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    84 thêm và xóa các đối tượng xử lý khỏi đối tượng logger. Trình xử lý được đề cập chi tiết hơn trong Trình xử lý .

  • ______385 và

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    86 thêm và xóa các đối tượng bộ lọc khỏi đối tượng logger. Các bộ lọc được đề cập chi tiết hơn trong Đối tượng bộ lọc .

Bạn không cần phải luôn gọi các phương thức này trên mọi trình ghi nhật ký bạn tạo. Xem hai đoạn cuối trong phần này

Với đối tượng logger được định cấu hình, các phương thức sau đây sẽ tạo thông báo tường trình

  • DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    87,
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    88,
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    89,
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    90 và
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    91 đều tạo các bản ghi nhật ký với thông báo và cấp độ tương ứng với tên phương thức tương ứng của chúng. Thông báo thực sự là một chuỗi định dạng, có thể chứa cú pháp thay thế chuỗi tiêu chuẩn của
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    92,
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    93,
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    94, v.v. Phần còn lại của các đối số của chúng là danh sách các đối tượng tương ứng với các trường thay thế trong thông báo. Đối với
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    95, các phương pháp ghi nhật ký chỉ quan tâm đến từ khóa của
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    96 và sử dụng nó để xác định xem có nên ghi thông tin ngoại lệ hay không

  • DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    97 tạo một thông điệp bản ghi tương tự như
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    90. Sự khác biệt là
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    97 kết xuất dấu vết ngăn xếp cùng với nó. Chỉ gọi phương thức này từ một trình xử lý ngoại lệ

  • DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    000 lấy cấp nhật ký làm đối số rõ ràng. Cách này dài dòng hơn một chút đối với việc ghi nhật ký thông báo so với việc sử dụng các phương pháp tiện lợi ở cấp độ nhật ký được liệt kê ở trên, nhưng đây là cách ghi nhật ký ở các cấp độ nhật ký tùy chỉnh

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
001 trả về một tham chiếu đến một phiên bản trình ghi với tên được chỉ định nếu nó được cung cấp hoặc
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
002 nếu không. Tên là các cấu trúc phân cấp được phân tách bằng dấu chấm. Nhiều cuộc gọi đến
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
001 có cùng tên sẽ trả về một tham chiếu đến cùng một đối tượng logger. Trình ghi nhật ký nằm sâu hơn trong danh sách phân cấp là con của trình ghi nhật ký cao hơn trong danh sách. Ví dụ: cho một bộ ghi có tên là
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
004, các bộ ghi có tên là
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
005,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
006 và
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
007 đều là hậu duệ của
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
004

Loggers có một khái niệm về mức độ hiệu quả. Nếu một mức không được đặt rõ ràng trên bộ ghi nhật ký, thì mức gốc của nó sẽ được sử dụng làm mức hiệu quả của nó. Nếu cấp độ gốc không được đặt mức rõ ràng, thì cấp độ gốc của nó sẽ được kiểm tra, v.v. - tất cả tổ tiên được tìm kiếm cho đến khi tìm thấy cấp độ được đặt rõ ràng. Trình ghi gốc luôn có mức rõ ràng được đặt [_______96 theo mặc định]. Khi quyết định có xử lý một sự kiện hay không, mức độ hiệu quả của bộ ghi được sử dụng để xác định xem sự kiện có được chuyển đến trình xử lý của bộ ghi hay không

Trình ghi nhật ký con truyền thông điệp tới trình xử lý được liên kết với trình ghi nhật ký tổ tiên của chúng. Do đó, không cần thiết phải xác định và định cấu hình trình xử lý cho tất cả các trình ghi nhật ký mà ứng dụng sử dụng. Chỉ cần định cấu hình trình xử lý cho trình ghi nhật ký cấp cao nhất và tạo trình ghi nhật ký con khi cần. [Tuy nhiên, bạn có thể tắt tính năng lan truyền bằng cách đặt thuộc tính lan truyền của bộ ghi nhật ký thành

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
010. ]

Trình xử lý¶

Các đối tượng

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
011 chịu trách nhiệm gửi các thông điệp tường trình thích hợp [dựa trên mức độ nghiêm trọng của thông điệp tường trình] đến đích được chỉ định của trình xử lý. Các đối tượng
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
26 có thể thêm 0 hoặc nhiều đối tượng trình xử lý vào chính chúng bằng phương thức
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
013. Như một tình huống ví dụ, một ứng dụng có thể muốn gửi tất cả các thông báo tường trình đến một tệp nhật ký, tất cả các thông báo tường trình có lỗi hoặc cao hơn đến thiết bị xuất chuẩn và tất cả các thông báo quan trọng đến một địa chỉ email. Kịch bản này yêu cầu ba trình xử lý riêng lẻ trong đó mỗi trình xử lý chịu trách nhiệm gửi tin nhắn có mức độ nghiêm trọng cụ thể đến một vị trí cụ thể

Thư viện chuẩn bao gồm khá nhiều loại trình xử lý [xem Trình xử lý hữu ích ]; .

Có rất ít phương thức trong trình xử lý để các nhà phát triển ứng dụng quan tâm đến. Các phương thức xử lý duy nhất có vẻ phù hợp với các nhà phát triển ứng dụng đang sử dụng các đối tượng trình xử lý tích hợp [nghĩa là không tạo các trình xử lý tùy chỉnh] là các phương thức cấu hình sau

  • Phương thức

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    016, giống như trong các đối tượng logger, chỉ định mức độ nghiêm trọng thấp nhất sẽ được gửi đến đích thích hợp. Tại sao có hai phương pháp
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    016? . Mức được đặt trong mỗi trình xử lý xác định thông báo mà trình xử lý đó sẽ gửi trên

  • DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    018 chọn một đối tượng Trình định dạng để trình xử lý này sử dụng

  • DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    019 và
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    020 lần lượt định cấu hình và giải cấu hình các đối tượng bộ lọc trên trình xử lý

Mã ứng dụng không được khởi tạo trực tiếp và sử dụng các phiên bản của

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
011. Thay vào đó, lớp
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
011 là lớp cơ sở xác định giao diện mà tất cả các trình xử lý nên có và thiết lập một số hành vi mặc định mà các lớp con có thể sử dụng [hoặc ghi đè]

Trình định dạng¶

Các đối tượng trình định dạng định cấu hình thứ tự, cấu trúc và nội dung cuối cùng của thông báo tường trình. Không giống như lớp cơ sở

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
023, mã ứng dụng có thể khởi tạo các lớp trình định dạng, mặc dù bạn có thể phân lớp trình định dạng nếu ứng dụng của bạn cần hành vi đặc biệt. Hàm tạo có ba đối số tùy chọn - chuỗi định dạng thông báo, chuỗi định dạng ngày và chỉ báo kiểu

ghi nhật ký. trình định dạng. __init__[fmt=Không có, datefmt=None, style='%']

Nếu không có chuỗi định dạng tin nhắn, mặc định là sử dụng tin nhắn thô. Nếu không có chuỗi định dạng ngày, định dạng ngày mặc định là

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
31

với mili giây được xử lý ở cuối.

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
024 là một trong số
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
025,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
026 hoặc
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
027. Nếu một trong những điều này không được chỉ định, thì
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
025 sẽ được sử dụng

Nếu

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
024 là
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
025, thì chuỗi định dạng thông báo sử dụng thay thế chuỗi theo kiểu
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
031; . Nếu kiểu là
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
026, thì chuỗi định dạng thư được coi là tương thích với
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
21 [sử dụng các đối số từ khóa], trong khi nếu kiểu là
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
027 thì chuỗi định dạng thư phải tuân theo những gì được mong đợi bởi
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
035.
LogRecord attributes. If the style is
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
026, the message format string is assumed to be compatible with
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
21 [using keyword arguments], while if the style is
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
027 then the message format string should conform to what is expected by
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
035.

Đã thay đổi trong phiên bản 3. 2. Đã thêm tham số

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
024.

Chuỗi định dạng thông báo sau đây sẽ ghi lại thời gian ở định dạng mà con người có thể đọc được, mức độ nghiêm trọng của thông báo và nội dung của thông báo theo thứ tự đó

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
32

Trình định dạng sử dụng chức năng do người dùng định cấu hình để chuyển đổi thời gian tạo bản ghi thành bộ dữ liệu. Theo mặc định,

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
037 được sử dụng; . Để thay đổi nó cho tất cả các trình định dạng, ví dụ: nếu bạn muốn tất cả thời gian ghi nhật ký được hiển thị theo giờ GMT, hãy đặt thuộc tính
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
038 trong lớp Trình định dạng [thành
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
042 để hiển thị theo giờ GMT]

Định cấu hình ghi nhật ký¶

Các lập trình viên có thể định cấu hình ghi nhật ký theo ba cách

  1. Tạo trình ghi nhật ký, trình xử lý và trình định dạng một cách rõ ràng bằng cách sử dụng mã Python gọi các phương thức cấu hình được liệt kê ở trên

  2. Tạo tệp cấu hình ghi nhật ký và đọc nó bằng hàm

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    043

  3. Tạo từ điển thông tin cấu hình và chuyển nó tới hàm

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    044

Để biết tài liệu tham khảo về hai tùy chọn cuối cùng, hãy xem Hàm cấu hình . Ví dụ sau định cấu hình trình ghi nhật ký rất đơn giản, trình xử lý bảng điều khiển và trình định dạng đơn giản bằng mã Python.

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
33

Chạy mô-đun này từ dòng lệnh sẽ tạo ra đầu ra sau

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
34

Mô-đun Python sau đây tạo một trình ghi nhật ký, trình xử lý và trình định dạng gần giống với các mô-đun trong ví dụ được liệt kê ở trên, với sự khác biệt duy nhất là tên của các đối tượng

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
35

Đây là nhật ký. tập tin conf

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
36

Đầu ra gần giống với đầu ra của ví dụ không dựa trên tệp cấu hình

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
37

Bạn có thể thấy rằng cách tiếp cận tệp cấu hình có một vài ưu điểm so với cách tiếp cận mã Python, chủ yếu là tách cấu hình và mã và khả năng của những người không mã hóa dễ dàng sửa đổi các thuộc tính ghi nhật ký

Cảnh báo

Hàm

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
043 lấy một tham số mặc định,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
046, mặc định là
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
047 vì lý do tương thích ngược. Đây có thể là điều bạn muốn hoặc không, vì nó sẽ khiến bất kỳ trình ghi nhật ký không phải root nào tồn tại trước lệnh gọi
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
043 bị vô hiệu hóa trừ khi chúng [hoặc tổ tiên] được đặt tên rõ ràng trong cấu hình. Vui lòng tham khảo tài liệu tham khảo để biết thêm thông tin và chỉ định
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
010 cho thông số này nếu bạn muốn

Từ điển được chuyển đến

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
044 cũng có thể chỉ định một giá trị Boolean với khóa
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
046, giá trị này nếu không được chỉ định rõ ràng trong từ điển cũng được mặc định hiểu là
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
047. Điều này dẫn đến hành vi vô hiệu hóa trình ghi nhật ký được mô tả ở trên, đây có thể không phải là điều bạn muốn - trong trường hợp đó, hãy cung cấp khóa một cách rõ ràng với giá trị là
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
010

Lưu ý rằng tên lớp được tham chiếu trong tệp cấu hình cần phải liên quan đến mô-đun ghi nhật ký hoặc giá trị tuyệt đối có thể được giải quyết bằng cơ chế nhập thông thường. Do đó, bạn có thể sử dụng

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
054 [liên quan đến mô-đun ghi nhật ký] hoặc
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
055 [đối với lớp được xác định trong gói
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
056 và mô-đun
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
057, trong đó
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
056 có sẵn trên đường dẫn nhập Python]

Trong Trăn 3. 2, một phương tiện mới để định cấu hình ghi nhật ký đã được giới thiệu, sử dụng từ điển để lưu giữ thông tin cấu hình. Điều này cung cấp một siêu chức năng của phương pháp tiếp cận dựa trên tệp cấu hình được nêu ở trên và là phương pháp cấu hình được đề xuất cho các ứng dụng và triển khai mới. Vì từ điển Python được sử dụng để chứa thông tin cấu hình và vì bạn có thể điền vào từ điển đó bằng các phương tiện khác nhau nên bạn có nhiều tùy chọn hơn để cấu hình. Ví dụ: bạn có thể sử dụng tệp cấu hình ở định dạng JSON hoặc, nếu bạn có quyền truy cập vào chức năng xử lý YAML, tệp ở định dạng YAML, để điền vào từ điển cấu hình. Hoặc, tất nhiên, bạn có thể xây dựng từ điển bằng mã Python, nhận nó ở dạng ngâm qua ổ cắm hoặc sử dụng bất kỳ cách tiếp cận nào phù hợp với ứng dụng của bạn

Đây là một ví dụ về cấu hình tương tự như trên, ở định dạng YAML cho cách tiếp cận dựa trên từ điển mới

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
38

Để biết thêm thông tin về ghi nhật ký bằng từ điển, hãy xem Hàm cấu hình .

Điều gì xảy ra nếu không có cấu hình nào được cung cấp¶

Nếu không cung cấp cấu hình ghi nhật ký, có thể xảy ra tình huống cần xuất sự kiện ghi nhật ký, nhưng không tìm thấy trình xử lý nào để xuất sự kiện. Hành vi của gói ghi nhật ký trong những trường hợp này phụ thuộc vào phiên bản Python

Đối với các phiên bản Python trước 3. 2, hành vi như sau

  • Nếu đăng nhập. raiseExceptions là

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    010 [chế độ sản xuất], sự kiện này sẽ âm thầm bị hủy

  • Nếu đăng nhập. raiseExceptions là

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    047 [chế độ phát triển], một thông báo 'Không thể tìm thấy trình xử lý nào cho logger X. Y. Z’ được in một lần

Trong Trăn 3. 2 trở lên, hành vi như sau

  • Sự kiện được xuất ra bằng cách sử dụng 'trình xử lý cuối cùng', được lưu trữ trong

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    061. Trình xử lý nội bộ này không được liên kết với bất kỳ trình ghi nhật ký nào và hoạt động giống như một
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    014 ghi thông báo mô tả sự kiện vào giá trị hiện tại của
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    78 [do đó tôn trọng mọi chuyển hướng có thể có hiệu lực]. Không có định dạng nào được thực hiện trên thư - chỉ có thông báo mô tả sự kiện trống được in. Cấp độ của trình xử lý được đặt thành
    --log=INFO
    
    6, vì vậy tất cả các sự kiện ở mức độ nghiêm trọng này và lớn hơn sẽ được xuất ra

Để có được pre-3. 2 hành vi,

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
061 có thể được đặt thành
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
066

Định cấu hình Ghi nhật ký cho Thư viện¶

Khi phát triển một thư viện sử dụng ghi nhật ký, bạn nên cẩn thận ghi lại cách thư viện sử dụng ghi nhật ký - ví dụ: tên của các trình ghi nhật ký được sử dụng. Một số cân nhắc cũng cần được đưa ra cho cấu hình ghi nhật ký của nó. Nếu ứng dụng đang sử dụng không sử dụng tính năng ghi nhật ký và mã thư viện thực hiện lệnh gọi ghi nhật ký, thì [như được mô tả trong phần trước] các sự kiện có mức độ nghiêm trọng

--log=INFO
6 trở lên sẽ được in tới
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
78. Đây được coi là hành vi mặc định tốt nhất

Nếu vì lý do nào đó mà bạn không muốn những thông báo này được in khi không có bất kỳ cấu hình ghi nhật ký nào, thì bạn có thể đính kèm một trình xử lý không cần làm gì vào trình ghi nhật ký cấp cao nhất cho thư viện của mình. Điều này tránh cho thông báo được in, vì sẽ luôn tìm thấy một trình xử lý cho các sự kiện của thư viện. nó chỉ không tạo ra bất kỳ đầu ra nào. Nếu người dùng thư viện định cấu hình ghi nhật ký để sử dụng ứng dụng, có lẽ cấu hình đó sẽ thêm một số trình xử lý và nếu các mức được định cấu hình phù hợp thì các cuộc gọi ghi nhật ký được thực hiện trong mã thư viện sẽ gửi đầu ra tới các trình xử lý đó, như bình thường

Trình xử lý không làm gì được bao gồm trong gói ghi nhật ký.

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
069 [kể từ Python 3. 1]. Phiên bản của trình xử lý này có thể được thêm vào trình ghi nhật ký cấp cao nhất của không gian tên ghi nhật ký được sử dụng bởi thư viện [nếu bạn muốn ngăn không cho các sự kiện đã ghi trong thư viện của mình xuất ra thành
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
78 khi không có cấu hình ghi nhật ký]. Nếu tất cả việc ghi nhật ký của thư viện foo được thực hiện bằng cách sử dụng các trình ghi nhật ký có tên khớp với 'foo. x', 'foo. x. y’, v.v. sau đó mã

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
39

nên có hiệu quả mong muốn. Nếu một tổ chức tạo ra một số thư viện, thì tên logger được chỉ định có thể là 'tên tổ chức'. foo' thay vì chỉ 'foo'

Ghi chú

Chúng tôi đặc biệt khuyên bạn không nên đăng nhập vào trình ghi nhật ký gốc trong thư viện của mình. Thay vào đó, hãy sử dụng trình ghi nhật ký có tên duy nhất và dễ nhận biết, chẳng hạn như

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
071 cho gói hoặc mô-đun cấp cao nhất của thư viện của bạn. Việc ghi nhật ký vào trình ghi nhật ký gốc sẽ khiến nhà phát triển ứng dụng khó hoặc không thể định cấu hình mức độ chi tiết của nhật ký hoặc trình xử lý thư viện của bạn như họ muốn

Ghi chú

Bạn không nên thêm bất kỳ trình xử lý nào ngoài

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
069 vào bộ ghi nhật ký của thư viện. Điều này là do cấu hình của trình xử lý là đặc quyền của nhà phát triển ứng dụng sử dụng thư viện của bạn. Nhà phát triển ứng dụng biết đối tượng mục tiêu của họ và trình xử lý nào phù hợp nhất cho ứng dụng của họ. nếu bạn thêm trình xử lý 'dưới mui xe', bạn cũng có thể can thiệp vào khả năng thực hiện kiểm tra đơn vị và cung cấp nhật ký phù hợp với yêu cầu của họ

Cấp độ ghi nhật ký¶

Các giá trị số của các mức ghi nhật ký được đưa ra trong bảng sau. Đây chủ yếu là mối quan tâm nếu bạn muốn xác định cấp độ của riêng mình và cần chúng có giá trị cụ thể so với cấp độ được xác định trước. Nếu bạn xác định một mức có cùng giá trị số, thì mức đó sẽ ghi đè lên giá trị đã xác định trước;

Mức độ

Giá trị số

--log=INFO
8

50

--log=INFO
7

40

--log=INFO
6

30

--log=INFO
5

20

--log=INFO
4

10

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
078

0

Các cấp độ cũng có thể được liên kết với trình ghi nhật ký, do nhà phát triển đặt hoặc thông qua tải cấu hình ghi nhật ký đã lưu. Khi một phương thức ghi nhật ký được gọi trên bộ ghi nhật ký, bộ ghi sẽ so sánh cấp độ của chính nó với cấp độ được liên kết với lệnh gọi phương thức. Nếu mức của trình ghi nhật ký cao hơn mức của lệnh gọi phương thức, thì không có thông báo ghi nhật ký nào thực sự được tạo. Đây là cơ chế cơ bản kiểm soát mức độ chi tiết của đầu ra ghi nhật ký

Thông báo ghi nhật ký được mã hóa dưới dạng các phiên bản của lớp

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
25. Khi một trình ghi nhật ký quyết định thực sự ghi nhật ký một sự kiện, một phiên bản
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
25 được tạo từ thông báo ghi nhật ký

Các thông báo ghi nhật ký phải tuân theo cơ chế gửi đi thông qua việc sử dụng các trình xử lý, là các thể hiện của các lớp con của lớp

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
011. Trình xử lý chịu trách nhiệm đảm bảo rằng một thông báo đã ghi [ở dạng
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
25] kết thúc ở một vị trí cụ thể [hoặc tập hợp các vị trí] hữu ích cho đối tượng mục tiêu của thông báo đó [chẳng hạn như người dùng cuối, nhân viên bộ phận hỗ trợ, hệ thống . Trình xử lý được thông qua các phiên bản
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
25 dành cho các đích cụ thể. Mỗi logger có thể không có, một hoặc nhiều trình xử lý được liên kết với nó [thông qua phương pháp
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
013 của
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
26]. Ngoài bất kỳ trình xử lý nào được liên kết trực tiếp với trình ghi nhật ký, tất cả trình xử lý được liên kết với tất cả tổ tiên của trình ghi nhật ký đều được gọi để gửi thông báo [trừ khi cờ truyền cho trình ghi nhật ký được đặt thành giá trị sai, tại thời điểm đó, quá trình chuyển đến trình xử lý tổ tiên dừng lại

Cũng giống như đối với bộ ghi nhật ký, trình xử lý có thể có các cấp độ được liên kết với chúng. Cấp độ của trình xử lý hoạt động như một bộ lọc giống như cấp độ của trình ghi nhật ký. Nếu một trình xử lý quyết định thực sự gửi một sự kiện, thì phương thức

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
086 được sử dụng để gửi tin nhắn đến đích của nó. Hầu hết các lớp con do người dùng định nghĩa của
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
011 sẽ cần ghi đè lên lớp
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
086 này

Cấp độ tùy chỉnh¶

Có thể xác định cấp độ của riêng bạn, nhưng không cần thiết, vì các cấp độ hiện có đã được chọn trên cơ sở kinh nghiệm thực tế. Tuy nhiên, nếu bạn tin rằng bạn cần các mức tùy chỉnh, thì bạn nên hết sức cẩn thận khi thực hiện việc này và có thể là một ý tưởng rất tồi nếu xác định các mức tùy chỉnh nếu bạn đang phát triển một thư viện. Đó là bởi vì nếu nhiều tác giả thư viện đều xác định các mức tùy chỉnh của riêng họ, thì có khả năng đầu ra ghi nhật ký từ nhiều thư viện được sử dụng cùng nhau sẽ gây khó khăn cho nhà phát triển sử dụng để kiểm soát và/hoặc diễn giải, bởi vì một giá trị số nhất định có thể có ý nghĩa khác nhau

Trình xử lý hữu ích¶

Ngoài lớp cơ sở

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
011, nhiều lớp con hữu ích được cung cấp

  1. Phiên bản

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    014 gửi tin nhắn đến luồng [đối tượng giống như tệp]

  2. Phiên bản

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    015 gửi tin nhắn đến tệp đĩa

  3. DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    092 là lớp cơ sở dành cho trình xử lý xoay tệp nhật ký tại một điểm nhất định. Nó không có nghĩa là được khởi tạo trực tiếp. Thay vào đó, hãy sử dụng
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    093 hoặc
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    094

  4. Phiên bản

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    093 gửi thông báo tới tệp đĩa, với sự hỗ trợ cho kích thước tệp nhật ký tối đa và xoay vòng tệp nhật ký

  5. Phiên bản

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    094 gửi thông báo tới tệp đĩa, xoay tệp nhật ký theo khoảng thời gian nhất định

  6. Phiên bản

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    097 gửi tin nhắn đến ổ cắm TCP/IP. kể từ 3. 4, Ổ cắm tên miền Unix cũng được hỗ trợ

  7. Phiên bản

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    098 gửi tin nhắn đến ổ cắm UDP. kể từ 3. 4, Ổ cắm tên miền Unix cũng được hỗ trợ

  8. Phiên bản

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    099 gửi thư đến địa chỉ email được chỉ định

  9. DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    300 trường hợp gửi tin nhắn đến một trình nền nhật ký hệ thống Unix, có thể trên một máy từ xa

  10. Phiên bản

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    301 gửi thông báo tới nhật ký sự kiện Windows NT/2000/XP

  11. Phiên bản

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    302 gửi tin nhắn đến bộ đệm trong bộ nhớ, bộ đệm này sẽ bị xóa bất cứ khi nào tiêu chí cụ thể được đáp ứng

  12. Phiên bản

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    303 gửi tin nhắn đến máy chủ HTTP sử dụng ngữ nghĩa
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    304 hoặc
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    305

  13. Phiên bản

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    054 xem tệp mà chúng đang đăng nhập. Nếu tệp thay đổi, tệp sẽ được đóng và mở lại bằng tên tệp. Trình xử lý này chỉ hữu ích trên các hệ thống giống Unix;

  14. Phiên bản

    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    307 gửi tin nhắn đến một hàng đợi, chẳng hạn như những phiên bản được triển khai trong mô-đun
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    308 hoặc
    DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    309

  15. DEBUG:root:This message should go to the log file
    INFO:root:So should this
    WARNING:root:And this, too
    ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
    
    069 trường hợp không làm gì với thông báo lỗi. Chúng được sử dụng bởi các nhà phát triển thư viện, những người muốn sử dụng ghi nhật ký, nhưng muốn tránh thông báo 'Không thể tìm thấy trình xử lý nào cho trình ghi nhật ký XXX' có thể hiển thị nếu người dùng thư viện chưa định cấu hình ghi nhật ký. Xem Định cấu hình ghi nhật ký cho thư viện để biết thêm thông tin.

Mới trong phiên bản 3. 1. Lớp

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
069.

Mới trong phiên bản 3. 2. Lớp

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
307.

Các lớp

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
069,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
014 và
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
015 được xác định trong gói ghi nhật ký cốt lõi. Các trình xử lý khác được xác định trong mô-đun phụ,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
316. [Ngoài ra còn có một mô-đun con khác,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
317, dành cho chức năng cấu hình. ]

Thông báo đã ghi được định dạng để trình bày thông qua các phiên bản của lớp

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
318. Chúng được khởi tạo với một chuỗi định dạng phù hợp để sử dụng với toán tử % và từ điển

Để định dạng nhiều thư trong một lô, có thể sử dụng các phiên bản của

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
319. Ngoài chuỗi định dạng [được áp dụng cho từng thư trong lô], còn có cung cấp cho chuỗi định dạng tiêu đề và đuôi

Khi việc lọc dựa trên cấp độ trình ghi và/hoặc cấp độ trình xử lý là không đủ, các phiên bản của

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
320 có thể được thêm vào cả hai phiên bản
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
26 và
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
011 [thông qua phương pháp
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
019 của chúng]. Trước khi quyết định xử lý thêm một thông báo, cả người ghi nhật ký và người xử lý đều tham khảo tất cả các bộ lọc của họ để được cấp phép. Nếu bất kỳ bộ lọc nào trả về giá trị sai, thông báo sẽ không được xử lý thêm

Chức năng cơ bản của

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
320 cho phép lọc theo tên nhật ký cụ thể. Nếu tính năng này được sử dụng, các tin nhắn được gửi tới bộ ghi nhật ký có tên và các phần tử con của nó sẽ được cho phép thông qua bộ lọc và tất cả các bộ ghi khác sẽ bị loại bỏ

Các ngoại lệ phát sinh trong quá trình ghi nhật ký¶

Gói ghi nhật ký được thiết kế để nuốt các ngoại lệ xảy ra khi đăng nhập vào sản xuất. Điều này là để các lỗi xảy ra trong khi xử lý các sự kiện ghi nhật ký - chẳng hạn như cấu hình sai ghi nhật ký, lỗi mạng hoặc các lỗi tương tự khác - không khiến ứng dụng sử dụng tính năng ghi nhật ký kết thúc sớm

Ngoại lệ

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
325 và
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
326 không bao giờ bị nuốt. Các trường hợp ngoại lệ khác xảy ra trong phương thức
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
086 của phân lớp
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
011 được truyền cho phương thức
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
329 của nó

Việc triển khai mặc định của

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
329 trong
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
011 kiểm tra xem biến cấp mô-đun,
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
332, có được đặt không. Nếu được đặt, truy nguyên được in thành
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
78. Nếu không được đặt, ngoại lệ sẽ bị nuốt

Ghi chú

Giá trị mặc định của

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
332 là
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
047. Điều này là do trong quá trình phát triển, bạn thường muốn được thông báo về bất kỳ trường hợp ngoại lệ nào xảy ra. Bạn nên đặt
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
332 thành
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
010 để sử dụng trong sản xuất

Sử dụng các đối tượng tùy ý làm thông điệp¶

Trong các phần và ví dụ trước, người ta đã giả định rằng thông báo được truyền khi ghi nhật ký sự kiện là một chuỗi. Tuy nhiên, đây không phải là khả năng duy nhất. Bạn có thể truyền một đối tượng tùy ý dưới dạng một thông báo và phương thức

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
338 của nó sẽ được gọi khi hệ thống ghi nhật ký cần chuyển đổi nó thành biểu diễn chuỗi. Trên thực tế, nếu bạn muốn, bạn có thể tránh hoàn toàn việc tính toán một biểu diễn chuỗi - ví dụ:
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
097 phát ra một sự kiện bằng cách chọn nó và gửi nó qua dây

Tối ưu hóa¶

Định dạng của các đối số thông báo được hoãn lại cho đến khi không thể tránh được. Tuy nhiên, việc tính toán các đối số được truyền cho phương thức ghi nhật ký cũng có thể tốn kém và bạn có thể muốn tránh thực hiện việc này nếu trình ghi nhật ký sẽ loại bỏ sự kiện của bạn. Để quyết định phải làm gì, bạn có thể gọi phương thức

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
340 nhận một đối số cấp độ và trả về true nếu sự kiện sẽ được Logger tạo cho cấp độ gọi đó. Bạn có thể viết mã như thế này

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
0

để nếu ngưỡng của bộ ghi được đặt trên

--log=INFO
4, các lệnh gọi tới
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
342 và
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
343 sẽ không bao giờ được thực hiện

Ghi chú

Trong một số trường hợp, bản thân

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
340 có thể đắt hơn bạn muốn [e. g. đối với các bộ ghi được lồng sâu trong đó mức rõ ràng chỉ được thiết lập ở mức cao trong hệ thống phân cấp của bộ ghi]. Trong những trường hợp như vậy [hoặc nếu bạn muốn tránh gọi một phương thức trong các vòng lặp chặt chẽ], bạn có thể lưu trữ kết quả của một lệnh gọi tới
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
340 trong một biến cục bộ hoặc biến thể hiện và sử dụng phương thức đó thay vì gọi phương thức mỗi lần. Một giá trị được lưu trong bộ nhớ cache như vậy sẽ chỉ cần được tính toán lại khi cấu hình ghi nhật ký thay đổi linh hoạt trong khi ứng dụng đang chạy [điều này không phổ biến lắm]

Có các tối ưu hóa khác có thể được thực hiện cho các ứng dụng cụ thể cần kiểm soát chính xác hơn đối với thông tin nhật ký nào được thu thập. Dưới đây là danh sách những việc bạn có thể làm để tránh xử lý trong quá trình ghi nhật ký mà bạn không cần

Những gì bạn không muốn thu thập

Làm thế nào để tránh thu thập nó

Thông tin về nơi các cuộc gọi được thực hiện từ

Đặt

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
346 thành
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
066. Điều này tránh gọi
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
348, điều này có thể giúp tăng tốc mã của bạn trong các môi trường như PyPy [không thể tăng tốc mã sử dụng
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
348]

thông tin luồng

Đặt

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
350 thành
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
010

ID quy trình hiện tại [

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
352]

Đặt

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
353 thành
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
010

Tên quy trình hiện tại khi sử dụng

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
309 để quản lý nhiều quy trình

Đặt

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
356 thành
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
010

Cũng lưu ý rằng mô-đun ghi nhật ký lõi chỉ bao gồm các trình xử lý cơ bản. Nếu bạn không nhập

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
316 và
DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too
ERROR:root:And non-ASCII stuff, too, like Øresund and Malmö
317, chúng sẽ không chiếm bất kỳ bộ nhớ nào

Chủ Đề