2010-10-28 74 views
14

Tôi đang sử dụng thư viện Python Freebase. Nó tạo nhật ký trước khi thực hiện:Trình ghi nhật ký gốc của Python lưu trữ nhật ký ở đâu?

self.log = logging.getLogger("freebase") 

Nhật ký này nằm trong hệ thống tệp ở đâu? Nó không có trong thư mục thực thi hoặc tmp.

+0

Tôi nhận thấy một lưu ý về câu hỏi này mà không có bất kỳ lời giải thích nào. Tôi sẽ đánh giá cao nếu người đó có thể cho tôi biết lý do tại sao tôi có thể chắc chắn sẽ rõ ràng hơn trong tương lai. –

Trả lời

14

Cuộc gọi đó không lưu trữ bất kỳ thứ gì. Nó chỉ đơn thuần là tạo ra một đối tượng logger có thể bị ràng buộc và cấu hình theo ý bạn.

Vì vậy, nếu trong mã Python của bạn, bạn đã thêm

logging.basicConfig(level=logging.WARNING) 

Tất cả các cảnh báo và lỗi sẽ được đăng nhập vào đầu ra tiêu chuẩn (đó là những gì basicConfig không), bao gồm các cuộc gọi mà Freebase làm. Nếu bạn muốn đăng nhập vào hệ thống tập tin hoặc mục tiêu khác, bạn sẽ muốn tham khảo logging module documentation để biết thêm thông tin. Bạn cũng có thể tham khảo Logging HOWTO.

+6

+1 theo những gì Jason nói. Bạn cũng có thể làm ví dụ: 'logging.basicConfig (filename = '/ path/to/file.log', filemode = 'w', level = logging.DEBUG)' để ghi lại mọi thứ đơn giản vào một tập tin. –

+0

Vì vậy, sau khi 'self.log' được định nghĩa là trong câu hỏi @Matt Norris, các cuộc gọi tiếp theo tới' self.logger.debug' sẽ không được lưu vào đĩa (giả sử không có cuộc gọi trung gian nào được thực hiện)? – dbliss

+0

@dbliss Nếu bạn đã định cấu hình ghi nhật ký theo đề xuất của Vinay, các cuộc gọi tiếp theo tới 'self.log.debug' sẽ được ghi vào tệp. Nếu bạn đã định cấu hình ghi nhật ký cho mỗi câu trả lời của tôi thay vào đó, các lệnh gọi đến 'self.log.debug' sẽ bị bỏ qua vì chúng ở dưới mức được chỉ định là' logging.WARNING'. –

Các vấn đề liên quan