Giả sử tôi có một đối tượng giống như tệp như StreamIO và muốn mô-đun cảnh báo của python ghi tất cả các thông báo cảnh báo vào nó. Làm thế nào để làm điều đó?Làm cách nào để chuyển hướng cảnh báo python sang luồng tùy chỉnh?
6
A
Trả lời
11
Hãy thử reassigning warnings.showwarning ví dụ:
#!/sw/bin/python2.5
import warnings, sys
def customwarn(message, category, filename, lineno, file=None, line=None):
sys.stdout.write(warnings.formatwarning(message, category, filename, lineno))
warnings.showwarning = customwarn
warnings.warn("test warning")
sẽ chuyển hướng tất cả các cảnh báo đến stdout.
0
Tôi nghĩ rằng một cái gì đó như thế này sẽ làm việc, mặc dù nó là mã chưa được kiểm tra và giao diện trông giống như có một cách sạch hơn mà eludes tôi có mặt tại địa chỉ:
import warnings
# defaults to the 'myStringIO' file
def my_warning_wrapper(message, category, filename, lineno, file=myStringIO, line=None):
warnings.show_warning(message, category, filename, lineno, file, line)
warnings._show_warning = my_warning_wrapper
Một cái nhìn bên trong Lib \ warnings.py sẽ giúp đưa bạn đi đúng hướng nếu điều đó không đủ.
0
import sys
import StringIO
sys.stdout = StringIO.StringIO()
Các vấn đề liên quan
- 1. Chuyển hướng Xác thực Windows sang trang 401 tùy chỉnh
- 2. Làm cách nào để đặt phông chữ tùy chỉnh cho hộp thoại cảnh báo trong Android?
- 3. C# Làm cách nào để chuyển hướng luồng sang giao diện điều khiển Out?
- 4. Cảnh báo tùy chỉnh sử dụng Javascript
- 5. chuyển hướng sys.stdout sang nhật ký python
- 6. Tôi làm cách nào để chuyển hướng Lỗi 404 trong trang 404 tùy chỉnh bằng Codeigniter?
- 7. Tôi làm cách nào để tùy chỉnh chế độ xem cảnh báo trên iOS?
- 8. 404 Chuyển hướng Tùy chỉnh
- 9. Làm cách nào để chuyển hướng STDOUT sang NSTextView?
- 10. Làm cách nào để chuyển hướng HTTPS sang HTTP?
- 11. Chuyển hướng stdout sang logger bằng Python
- 12. Cách tùy chỉnh vị trí của hộp cảnh báo
- 13. Làm cách nào để chuyển hướng stdout sang tệp khi sử dụng subprocess.call trong python?
- 14. Làm cách nào để nhận nhiệm vụ tùy chỉnh nhập nhiều lần mà không có thông báo cảnh báo?
- 15. Làm cách nào để chuyển boolean từ javascript sang python?
- 16. Làm cách nào để chuyển thông báo lỗi tùy chỉnh tới trình ghép hoa nhài?
- 17. Làm cách nào để tùy chỉnh đầu ra của Jenkins?
- 18. Spring Webflow: làm cách nào để chuyển thuộc tính từ luồng này sang luồng khác trong quá trình chuyển đổi?
- 19. Có cách nào để hiển thị ngoại lệ tùy chỉnh trong cảnh báo trong Android không?
- 20. chuyển đổi từ 'KanjiCard *' sang loại vô hướng 'KanjiCard' được yêu cầu (tùy chỉnh enum)
- 21. Làm thế nào để vô hiệu hóa cảnh báo python
- 22. Kích thước hộp thoại cảnh báo hoặc hộp thoại cảnh báo tùy chỉnh
- 23. Chuyển hướng đầu ra 'in' của Python sang Logger
- 24. cách chuyển hướng stdin sang java Runtime.exec?
- 25. Zend Framework: Cách chuyển hướng các tuyến đường cũ sang tuyến đường tùy chỉnh mới 301 như thế nào?
- 26. Cách nhận thông báo cảnh báo trước khi chuyển hướng một trang
- 27. làm cách nào để đăng ký Dịch vụ chuyển đổi tùy chỉnh vào mùa xuân 3/luồng web 2?
- 28. Django cách chuyển biến tùy chỉnh thành ngữ cảnh để sử dụng trong mẫu quản trị tùy chỉnh?
- 29. Ghi nhật ký Java - cách chuyển hướng đầu ra sang tệp nhật ký tùy chỉnh cho trình ghi nhật ký?
- 30. Tài Android chuyển sang cảnh báo TypedValue chuỗi
Chỉ cần một lưu ý - đây là một thực hiện khác nhau từ io.StringIO StringIO.StringIO không có các phương pháp như fileno() được xác định, trong khi io.StringIO có fileno() được xác định nhưng không được thực hiện. – eacousineau