Có cách nào để thực hiện việc này không? Nếu logging.config.fileConfig('some.log')
là setter, getter là gì? Chỉ tò mò nếu điều này tồn tại.Làm cách nào để lấy tệp mà mô-đun ghi nhật ký Python hiện đang đăng nhập?
Trả lời
logging.config.fileConfig('some.log')
sẽ cố gắng đọc cấu hình ghi nhật ký từ some.log.
Tôi không tin rằng có một cách chung để truy xuất tệp đích - không phải lúc nào cũng được đảm bảo sẽ chuyển đến tệp. (Nó có thể đi đến syslog, qua mạng, vv)
tôi cần phải làm điều gì đó tương tự như trong một môi trường khai thác gỗ rất đơn giản, các thói quen sau đây đã làm các trick
def _find_logger_basefilename(self, logger):
"""Finds the logger base filename(s) currently there is only one
"""
log_file = None
parent = logger.__dict__['parent']
if parent.__class__.__name__ == 'RootLogger':
# this is where the file name lives
for h in logger.__dict__['handlers']:
if h.__class__.__name__ == 'TimedRotatingFileHandler':
log_file = h.baseFilename
else:
log_file = self._find_logger_basefilename(parent)
return log_file
tôi đang tìm kiếm các tập tin được sử dụng bởi TimedRotatingFileHandler, bạn có thể cần phải thay đổi loại trình xử lý mà bạn tìm kiếm, có thể là FileHandler.
Không chắc chắn nó sẽ hoạt động như thế nào trong bất kỳ môi trường ghi nhật ký phức tạp nào.
Trong trường hợp của mình, tôi đã sử dụng để khởi tạo một trình ghi nhật ký duy nhất (trong tập lệnh chính) và sử dụng nó trong tất cả các gói của mình bằng cách thực hiện locallogger = logging.getLogger(__name__)
. Trong thiết lập này để có được những đường dẫn tập tin đăng nhập tôi đã phải sửa đổi @ câu trả lời của John như sau
def find_rootlogger_basefilename():
"""Finds the root logger base filename
"""
log_file = None
rootlogger = logging.getLogger('')
for h in rootlogger.__dict__['handlers']:
if h.__class__.__name__ == 'FileHandler':
log_file = h.baseFilename
break
elif h.__class__.__name__ == 'TimedRotatingFileHandler':
log_file = h.baseFilename
break
return log_file
Đối với sử dụng cơ bản của tôi về một log file duy nhất, điều này làm việc
logging.getLoggerClass().root.handlers[0].baseFilename
Dưới logic đơn giản cho tập tin duy nhất người xử lý:
>>> import logging
>>> logger = logging.getLogger("test")
>>> handler = logging.FileHandler("testlog.log")
>>> logger.addHandler(handler)
>>> print logger.handlers[0].baseFilename
/home/nav/testlog.log
>>>
- 1. Ghi nhật ký Python: cách thể hiện dòng mới trong chuỗi định dạng trong tệp cấu hình ghi nhật ký?
- 2. UTF-8 Trong ghi nhật ký Python, làm cách nào?
- 3. ghi nhật ký đăng nhập bằng maven-jetty-plugin
- 4. Ghi nhật ký bằng Python - kiểm tra vị trí của tệp nhật ký?
- 5. Lấy tên lớp để ghi nhật ký
- 6. Làm cách nào để loại bỏ các cuộc gọi ghi nhật ký bằng Python mà không nhận xét chúng?
- 7. Làm cách nào để ghi đè nhập bằng Python?
- 8. Ghi nhật ký Python nhiều tệp bằng cùng một trình ghi
- 9. ghi nhật ký log4net không tạo tệp nhật ký
- 10. Làm thế nào Orchard CMS thực hiện việc đăng nhập?
- 11. Cách định cấu hình ghi nhật ký vào nhật ký hệ thống trong Python?
- 12. VS2010: tối thiểu xây dựng đăng nhập và đăng nhập chi tiết trong tệp nhật ký
- 13. Làm cách nào để ghi vào tệp nhật ký apache khi sử dụng mod_wsgi
- 14. (Java) ghi sự kiện để đăng nhập tệp văn bản
- 15. Làm cách nào để sử dụng Ghi nhật ký trong Thanh công cụ gỡ lỗi Django?
- 16. Để đăng nhập hoặc không đăng nhập?
- 17. Python: xóa một tệp nhật ký
- 18. Ghi nhật ký toàn cầu của Python
- 19. Ghi nhật ký NSNotifications
- 20. Làm cách nào để đăng nhập vào Scala * mà không có * tham chiếu đến trình ghi nhật ký trong * mọi trường hợp *?
- 21. Làm cách nào để có danh sách vai trò cho người dùng hiện đang đăng nhập
- 22. Ghi nhật ký xoắn
- 23. Đăng nhập bằng Python ở Django
- 24. Log4net, cách ghi nhật ký tiết?
- 25. Python- Làm cách nào để xóa nhật ký? (django)
- 26. Ghi nhật ký Python: thông báo tin nhắn cấp dưới mức nhật ký hiện tại
- 27. Làm thế nào để buộc NLog ghi đè lên tệp nhật ký
- 28. Ghi nhật ký PSGI (Perl)
- 29. Lỗi ghi nhật ký có lập trình Với Elmah: Ghi nhật ký thông tin cụ thể
- 30. Cách sử dụng tính năng ghi nhật ký với tệp python của python và định cấu hình tên tệp nhật ký