phép nói rằng tôi muốn đăng nhập như chuỗi định dạng này:django logging đặt bối cảnh trên toàn cầu theo yêu cầu?
%(levelname)s %(asctime)s %(module)s %(funcName)s %(message)s %(user_id)
Nó có thể được thực hiện bằng loại lệnh đăng nhập:
logging.error('Error fetching information', extra = { 'user_id': 22 })
này sẽ thêm userid hiện tại để đăng tin nhắn cho yêu cầu hiện tại.
Nhưng thêm dict cần phải được thêm vào mỗi cuộc gọi đăng nhập.
Có cách nào tốt để thêm ngữ cảnh này vào một chức năng chung trong django (ví dụ phần mềm trung gian hoặc chức năng chỉ mục của chế độ xem), để từ điển bổ sung có id người dùng được đặt và tất cả các cuộc gọi đăng nhập khác trong hiện tại yêu cầu cũng đăng nhập người dùng hiện tại.
Tại sao câu trả lời của 'mawimawi' không được chấp nhận? Có phải vì sử dụng thread-local hay cái gì khác? –
Vinay Sajip, một số điểm đại diện sẽ chết một mình. Đó là cách nó hoạt động ở đây trên stackoverflow. – mawimawi
@VinaySajip, vâng, cố gắng tránh việc sử dụng luồng địa phương và phần mềm trung gian bổ sung. Nếu có một cách có thể bằng cách mở rộng lớp khai thác gỗ, điều đó sẽ rất tuyệt. – DhruvPathak