Hướng dẫn python disable logger - trình ghi nhật ký vô hiệu hóa python
Tôi đã tìm thấy một giải pháp cho việc này:
Điều này sẽ ngăn chặn việc đăng nhập được gửi đến logger trên bao gồm ghi nhật ký bảng điều khiển.
ereon 52.1K37 Huy hiệu vàng159 Huy hiệu bạc233 Huy hiệu Đồng37 gold badges159 silver badges233 bronze badges Đã trả lời ngày 15 tháng 2 năm 2010 lúc 17:04Feb 15, 2010 at 17:04
Sorinsorinsorin 154K171 Huy hiệu vàng518 Huy hiệu bạc770 Huy hiệu đồng171 gold badges518 silver badges770 bronze badges 5 Tôi sử dụng:
Đã trả lời ngày 25 tháng 6 năm 2010 lúc 6:42Jun 25, 2010 at 6:42
Infinitoinfinitoinfinito 1.8451 Huy hiệu vàng15 Huy hiệu bạc16 Huy hiệu đồng1 gold badge15 silver badges16 bronze badges 5 Bạn có thể dùng:
Trường hợp của bạn là một trong những điều đó:your_level is one of those:
Vì vậy, nếu bạn đặt của bạn_Level thành Logging.Critical, bạn sẽ chỉ nhận được các tin nhắn quan trọng được gửi bởi:your_level to logging.CRITICAL, you will get only critical messages sent by:
Đặt your_level để ghi nhật ký.debug sẽ hiển thị tất cả các cấp độ đăng nhập.your_level to logging.DEBUG will show all levels of logging. Để biết thêm chi tiết, xin vui lòng xem các ví dụ về ghi nhật ký. Theo cách tương tự để thay đổi cấp độ cho mỗi người xử lý sử dụng hàm Handler.setLevel ().
vallentin 22.2K6 Huy hiệu vàng56 Huy hiệu bạc76 Huy hiệu đồng6 gold badges56 silver badges76 bronze badges Đã trả lời ngày 15 tháng 2 năm 2010 lúc 16:25Feb 15, 2010 at 16:25
VadikusvadikusVadikus 9915 Huy hiệu bạc5 Huy hiệu Đồng5 silver badges5 bronze badges 4 Sử dụng Trình quản lý ngữ cảnh - [đơn giản nhất]most simple ]
Ví dụ về việc sử dụng:
Nếu bạn cần một giải pháp hạt mịn [phức tạp hơn], bạn có thể nhìn vào AdvancedLoggermore COMPLEX] fine-grained solution you can look at AdvancedLogger
Các trường hợp sử dụng cho AdvancedLogger
Đã trả lời ngày 27 tháng 11 năm 2013 lúc 19:19Nov 27, 2013 at 19:19
Pymenpymenpymen 4.98540 Huy hiệu bạc33 Huy hiệu đồng40 silver badges33 bronze badges 5 (Câu hỏi chết lâu, nhưng đối với những người tìm kiếm trong tương lai) Gần hơn với mã/ý định của poster ban đầu, điều này phù hợp với tôi dưới Python 2.6 0Gotcha tôi phải làm việc là loại bỏ trình xử lý stdout sau khi thêm một cái mới; Mã logger dường như tự động thêm lại stdout nếu không có trình xử lý. IndexOutoFbound Fix: Nếu bạn gặp lỗi indexOutoFbound trong khi khởi tạo lhstdout, hãy di chuyển khởi tạo thành sau khi thêm trình xử lý tệp của bạn, tức là. If you get a IndexOutOfBound Error while instantiating lhStdout, move the instantiation to after adding your file handler i.e. 1
Đã trả lời ngày 23 tháng 6 năm 2011 lúc 19:31Jun 23, 2011 at 19:31
l82kyl82kyl82ky 5334 Huy hiệu bạc2 Huy hiệu Đồng4 silver badges2 bronze badges 1 Để vô hiệu hóa hoàn toàn ghi nhật ký:: 2Để cho phép ghi nhật ký:: 3Các câu trả lời khác cung cấp các công việc xung quanh không giải quyết đầy đủ vấn đề, chẳng hạn như 4và, đối với một số 1 lớn hơn 50, 5Vấn đề với giải pháp đầu tiên là nó chỉ hoạt động cho bộ ghi gốc. Các trình ghi nhật ký khác được tạo bằng cách sử dụng, giả sử, 2 không bị vô hiệu hóa bằng phương pháp này.Giải pháp thứ hai không ảnh hưởng đến tất cả các nhật ký. Nhưng nó giới hạn đầu ra ở mức trên mức được đưa ra, vì vậy người ta có thể ghi đè nó bằng cách đăng nhập với mức lớn hơn 50. Có thể được ngăn chặn bởi 6theo như tôi có thể nói (sau khi xem xét nguồn) là cách duy nhất để vô hiệu hóa hoàn toàn ghi nhật ký.
Thị trấn 1922 Huy hiệu bạc9 Huy hiệu Đồng2 silver badges9 bronze badges Đã trả lời ngày 21 tháng 5 năm 2017 lúc 19:36May 21, 2017 at 19:36
STARFREMFRYstarfry 8.7856 Huy hiệu vàng61 Huy hiệu bạc93 Huy hiệu Đồng6 gold badges61 silver badges93 bronze badges 1 Có một số câu trả lời thực sự tốt ở đây, nhưng rõ ràng đơn giản nhất không được xem xét quá nhiều (chỉ từ Infinito). 7Điều này vô hiệu hóa logger gốc, và do đó tất cả các logger khác. Tôi chưa thực sự thử nghiệm nhưng nó cũng nên là nhanh nhất. Từ mã ghi nhật ký trong Python 2.7 Tôi thấy điều này 8Điều đó có nghĩa là khi nó bị vô hiệu hóa, không có trình xử lý nào được gọi và nó sẽ hiệu quả hơn khi lọc đến giá trị rất cao hoặc thiết lập một trình xử lý không có người điều khiển chẳng hạn. Đã trả lời ngày 13 tháng 12 năm 2011 lúc 19:59Dec 13, 2011 at 19:59
andrea_crottiandrea_crottiandrea_crotti 2.9022 Huy hiệu vàng27 Huy hiệu bạc33 Huy hiệu Đồng2 gold badges27 silver badges33 bronze badges 4 Ghi nhật ký có cấu trúc sau:
Ghi nhật ký có quy trình sau (được biểu thị bằng sơ đồ): Do đó, để vô hiệu hóa một bộ ghi âm cụ thể, bạn có thể áp dụng một trong các chiến lược sau:
Thêm bộ lọc 8 vào logger.Ghi chú. - Đặt thuộc tính 7 của logger thành 8 chưa phải là một chiến lược khác, vì nó không phải là một phần của API công khai (xem https://bugs.python.org/issue36318): 5Đã trả lời ngày 20 tháng 4 năm 2020 lúc 22:27Apr 20, 2020 at 22:27
MaggyeromaggyeroMaggyero 5.0663 Huy hiệu vàng33 Huy hiệu bạc54 Huy hiệu đồng3 gold badges33 silver badges54 bronze badges 2 Không cần chuyển hướng stdout. Đây là cách tốt hơn để làm điều đó: 6Một cách thậm chí đơn giản hơn là: 7Đã trả lời ngày 15 tháng 2 năm 2010 lúc 16:05Feb 15, 2010 at 16:05
Ehsan foroughiehsan foroughiEhsan Foroughi 2.9302 Huy hiệu vàng18 Huy hiệu bạc19 Huy hiệu đồng2 gold badges18 silver badges19 bronze badges 2 8Đầu ra bảng điều khiển: 9Nội dung tệp test.log: 0Đã trả lời ngày 15 tháng 9 năm 2018 lúc 7:27Sep 15, 2018 at 7:27
Shawn Hushawn HuShawn Hu 3092 Huy hiệu bạc7 Huy hiệu đồng2 silver badges7 bronze badges 1 Xem xét bạn đã tạo trình xử lý của riêng mình, sau đó ngay trước khi bạn thêm chúng vào logger, bạn có thể làm: 1Sẽ loại bỏ StreamHandler mặc định. Điều này đã làm việc cho tôi trên Python 3.8 sau khi gặp phải các bản ghi không mong muốn đến Stderr, khi chúng đáng lẽ phải được ghi lại vào một tệp. Đã trả lời ngày 13 tháng 12 năm 2021 lúc 17:08Dec 13, 2021 at 17:08
Elbudelbudelbud 556 Huy hiệu Đồng6 bronze badges Tôi không biết rõ về mô -đun đăng nhập, nhưng tôi đang sử dụng nó theo cách mà tôi thường muốn vô hiệu hóa các tin nhắn gỡ lỗi (hoặc thông tin). Bạn có thể sử dụng 9 để đặt mức ghi nhật ký thành quan trọng hoặc cao hơn.Ngoài ra, bạn có thể thay thế sys.stderr và sys.stdout bằng một tệp mở để viết. Xem http://docs.python.org/l Library/sys.html#sys.stdout. Nhưng tôi sẽ không đề nghị điều đó.stdout. But I wouldn't recommend that. Đã trả lời ngày 15 tháng 2 năm 2010 lúc 15:07Feb 15, 2010 at 15:07
KrabkrabKrab 2.08814 Huy hiệu bạc23 Huy hiệu đồng14 silver badges23 bronze badges 1 Bạn cũng có thể: 2Đã trả lời ngày 11 tháng 3 năm 2015 lúc 12:38Mar 11, 2015 at 12:38
ITALO MAIAITALO MAIAItalo Maia 1.9463 huy hiệu vàng18 Huy hiệu bạc29 Huy hiệu đồng3 gold badges18 silver badges29 bronze badges 1 Bằng cách thay đổi một cấp độ trong "logging.config.dictconfig", bạn sẽ có thể đưa toàn bộ cấp độ đăng nhập lên một cấp độ mới. 3}) Đã trả lời ngày 13 tháng 11 năm 2019 lúc 17:03Nov 13, 2019 at 17:03
Tìm thấy một giải pháp thanh lịch bằng cách sử dụng các trình trang trí, giải quyết vấn đề sau: Điều gì sẽ xảy ra nếu bạn đang viết một mô -đun với một số chức năng, mỗi trong số chúng có một số tin nhắn gỡ lỗi và bạn muốn vô hiệu hóa việc đăng nhập tất cả các chức năng nhưng một chức năng bạn hiện đang tập trung vào?decorators, which addresses the following problem: what if you are writing a module with several functions, each of them with several debugging messages, and you want to disable logging in all functions but the one you are currently focusing on? Bạn có thể làm điều đó bằng cách sử dụng các nhà trang trí: 4Sau đó, bạn có thể làm: 5Ngay cả khi bạn gọi 0 từ trong vòng 1, các tin nhắn gỡ lỗi từ 0 sẽ không được hiển thị. Điều này đảm bảo bạn sẽ chỉ thấy các tin nhắn gỡ lỗi từ chức năng bạn đang tập trung vào.Hy vọng nó giúp! Đã trả lời ngày 14 tháng 11 năm 2019 lúc 14:36Nov 14, 2019 at 14:36
Bạn có thể thay đổi mức độ của chế độ gỡ lỗi cho trình xử lý cụ thể thay vì vô hiệu hóa hoàn toàn. Vì vậy, nếu bạn có một trường hợp bạn muốn dừng chế độ gỡ lỗi chỉ cho bảng điều khiển nhưng bạn vẫn cần giữ các cấp độ khác như lỗi. Bạn có thể làm điều này như những điều sau 6Đã trả lời ngày 5 tháng 10 năm 2020 lúc 12:14Oct 5, 2020 at 12:14
aibrahimaibrahimaibrahim 2192 Huy hiệu bạc4 Huy hiệu đồng2 silver badges4 bronze badges Nó không phải là giải pháp 100%, nhưng không có câu trả lời nào ở đây giải quyết vấn đề của tôi. Tôi có mô -đun ghi nhật ký tùy chỉnh xuất bản văn bản màu theo mức độ nghiêm trọng. Tôi cần phải vô hiệu hóa đầu ra stdout vì nó đang sao chép nhật ký của tôi. Tôi ổn với các nhật ký quan trọng được xuất ra vào bảng điều khiển vì tôi gần như không sử dụng nó. Tôi đã không kiểm tra nó cho Stderr vì tôi không sử dụng nó trong việc ghi nhật ký của mình, nhưng nên hoạt động giống như stdout. Nó đặt ra quan trọng là mức độ nghiêm trọng tối thiểu chỉ đối với stdout (stderr nếu được yêu cầu). 7Đã trả lời ngày 25 tháng 3 lúc 10:46Mar 25 at 10:46
lớp con cái xử lý bạn muốn có thể vô hiệu hóa tạm thời: 8Tìm người xử lý theo tên là khá dễ dàng: 9một khi được tìm thấy: 0Đã trả lời ngày 13 tháng 2 năm 2019 lúc 21:17Feb 13, 2019 at 21:17
jake77jake77jake77 1.7462 huy hiệu vàng14 Huy hiệu bạc21 Huy hiệu đồng2 gold badges14 silver badges21 bronze badges |