我正在尋找一種在Python日誌格式化程序中執行部分字符串格式化的方法。
當試圖定義一個格式化的方式如下:
在Python日誌格式化程序中部分字符串格式化
formatter = logging.Formatter('[num-%d] %(levelname)s %(message)s' % (num,))
我會得到一個類型錯誤使用「格式要求的映射」,這是合理的解釋無法找到「levelname」和'信息'。
當然,我希望'levelname'和'message'保持未格式化的日誌框架來處理。
依我之見,有解決這個問題的另外兩種方式:
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')
不過,我覺得這兩種解決方案有點醜,我相信有必須是更好的方式來格式化部分字符串 - 無論是在Python中,還是在Python內置日誌框架中使用。
任何想法?
重複http://stackoverflow.com/questions/4928526/python-format-string – Stefano