Một lý do khác mà bạn có thể muốn thay đổi kết quả ghi nhật ký là để kiểm tra và chuyển hướng nhật ký máy chủ đến tệp nhật ký.
Tôi cũng không thể làm cho đề xuất ở trên hoạt động, có vẻ như trình ghi nhật ký được thiết lập như một phần của ứng dụng khởi động. Tôi đã có thể làm cho nó hoạt động bằng cách thay đổi các cấp độ nhật ký sau khi khởi động ứng dụng:
... (in setUpClass)
server = Thread(target=lambda: app.run(host=hostname, port=port, threaded=True))
server.daemon = True
server.start()
wait_for_boot(hostname, port)
log_names = ['werkzeug']
app_logs = map(lambda logname: logging.getLogger(logname), log_names)
file_handler = logging.FileHandler('log/app.test.log', 'w')
for app_log in app_logs:
for hdlr in app_log.handlers[:]:
app_log.removeHandler(hdlr)
app_log.addHandler(file_handler)
Thật không may * Running on localhost:9151
, kiểm tra sức khỏe và đầu tiên vẫn được in theo tiêu chuẩn, nhưng khi chạy nhiều kiểm tra, nó sẽ làm sạch đầu ra một tấn.
"Vậy tại sao log_names
?", Bạn hỏi. Trong trường hợp của tôi, có một số nhật ký bổ sung mà tôi cần phải loại bỏ. Tôi có thể tìm thấy trình ghi nhật ký nào để thêm vào log_names qua:
from flask import Flask
app = Flask(__name__)
import logging
print(logging.Logger.manager.loggerDict)
Lưu ý bên cạnh: Sẽ thật tuyệt nếu có một ứng dụng chạy nhanh (flash ).getLogger () hoặc một cái gì đó để tính năng này mạnh mẽ hơn trên các phiên bản. Có ý kiến gì không?
Một số từ khóa khác: nhật ký kiểm tra bình loại bỏ đầu ra stdout
nhờ vào: