Tôi đang tìm cách để thực hiện định dạng chuỗi một phần trong trình ghi nhật ký ghi nhật ký Python.
Khi cố gắng để xác định một định dạng theo cách sau:
Định dạng chuỗi một phần trong Python Logging Formatters
formatter = logging.Formatter('[num-%d] %(levelname)s %(message)s' % (num,))
tôi sẽ nhận được một TypeError với "định dạng đòi hỏi một bản đồ" mà là hợp lý khi người phiên dịch không thể tìm thấy 'levelname' và 'thông điệp'.
Tất nhiên, tôi muốn cả 'tên cấp' và 'tin nhắn' vẫn không được định dạng cho khung đăng nhập để xử lý.
Như tôi thấy, có hai cách khác để giải quyết vấn đề này:
format = '[num-' + str(num) + '] %(levelname)s %(message)s' % (num,)
format = '[num-%(num)d] %(levelname)s %(message)s' % dict(num=num, levelname='%(levelname)s', message='%(message)s')
Tuy nhiên, tôi thấy cả hai giải pháp có phần xấu xí, và tôi tin rằng có phải là một cách tốt hơn để định dạng chỉ một phần của chuỗi - hoặc bằng Python, hoặc sử dụng trong khung công tác ghi nhật ký dựng sẵn python.
Bất kỳ ý tưởng nào?
trùng lặp của http://stackoverflow.com/questions/4928526/python-format-string – Stefano