国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Python日志:自定義輸出字段 json格式輸出方式

瀏覽:3日期:2022-07-27 11:34:33

最近有一個需求:將日志以json格式輸出, 并且有些字段是logging模塊沒有的.看了很多源碼和資料, 終于搞定, 抽取精華分享出來, 一起成長.

import jsonimport logging class JsonFilter(logging.Filter): ip = ’IP’ source = ’APP’ def filter(self, record): record.ip = self.ip record.username = self.source return True if __name__ == ’__main__’: formate = json.dumps({ 'time': '%(asctime)s', 'levelname': '%(levelname)s', 'levelno': '%(lineno)d', 'ip': '%(ip)s', 'source': '%(source)s' }) logging.basicConfig(level=logging.DEBUG, format=formate) logger = logging.getLogger() filter_ = JsonFilter() logger.addFilter(filter_) logger.debug(’A debug message’) filter_.ip = ’127.0.0.1’ filter_.source= ’china’ logger.info(’A message for test’)

運行結果:

Python日志:自定義輸出字段 json格式輸出方式

其實就是重寫了logging.Filter的filter方法,自定義需要的字段, 在調用日志輸出時,賦予相應的值即可.不賦予相應的值時也可以輸出日志, 會自動按照定義字段時的信息輸出.

補充知識:Log打印完整參數,生成Json文件

當字符數量足夠多的的時候,Log控制臺便會自動截取,不能在控制臺上完整輸出,可以利用如下方法,這種方式會在測試機或者虛擬機的根目錄生成一個new.json文件,里面是完整的Log信息

public static void printStringToFile(String str) { File file = new File(Environment.getExternalStorageDirectory(), 'new.json'); Log.d('Lyb', 'path = ' + file.getAbsolutePath()); FileWriter writer = null; try { Log.d('Lyb', 'createNewFile'); if (!file.exists()) { file.createNewFile(); }else { file.delete(); file.createNewFile(); } writer = new FileWriter(file, true); writer.write(str); writer.flush(); writer.close(); writer = null; } catch (IOException e) { e.printStackTrace(); } finally { try { if (writer != null) { writer.close(); } } catch (IOException e) { e.printStackTrace(); } }}

以上這篇Python日志:自定義輸出字段 json格式輸出方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 资兴市| 麦盖提县| 天津市| 荣昌县| 孟州市| 乌审旗| 邯郸市| 甘泉县| 罗山县| 襄城县| 屯留县| 许昌市| 望奎县| 泽普县| 田阳县| 错那县| 靖远县| 文成县| 和平县| 府谷县| 永登县| 丰顺县| 吉安县| 金华市| 大宁县| 渝中区| 喜德县| 马山县| 宣武区| 米林县| 丽水市| 陇南市| 西华县| 美姑县| 区。| 阿拉善左旗| 铜鼓县| 遵义市| 仙桃市| 盐亭县| 定陶县|