当前位置: 首页 > 后端技术 > Python

loguru序列化减少字段

时间:2023-03-25 23:13:54 Python

SEO浼樺寲loguru鍘绘帀涓€浜涘瓧娈祃oguru鍘绘帀璁板綍瀛楁loguru濡備綍鍙暀涓嬩綘鎯宠鐨勫瓧娈佃嚜瀹氫箟loguru杈撳嚭loguruserialize榛樿瀛楁澶锛屽ぇ閮ㄥ垎鏍规湰涓嶉渶瑕侊紝鏋佸ぇ娴垂鏃ュ織瀛樺偍绌洪棿锛歠romloguruimportloggerimportsyslogger.remove()logger.add(sys.stdout,serialize='json')logger.debug(f'haha')杈撳嚭锛歿"text":"2022-08-2801:11:45.258|DEBUG|__main__::9-lol\n","record":{"elapsed":{"repr":"0:00:00.004474","seconds":0.004474},"exception":null,"extra":{},"file":{"name":"003.py","path":"/home/bot/Desktop/ideaboom/test_logger/003.py"},"function":"<妯″潡>","level":{"icon":"馃悶","name":"DEBUG","no":10},"line":9,"message":"haha","module":"003","name":"__main__","process":{"id":282787,"name":"MainProcess"},"thread":{"id":139949730423424,"name":"MainThread"},"time":{"repr":"2022-08-2801:11:45.258317+08:00","timestamp":1661620305.258317}}}鎴戜滑闇€瑕佸噺灏戣繖浜涙棤鐢ㄥ瓧娈碉紝浣跨敤绫讳技浜庘€滅尨瀛愯ˉ涓佲€濈殑鏂规硶锛歠romloguru._recattrsimportRecordExceptionfromloguru._handlerimportHandlerfromloguru瀵煎叆loggerimportsysimportjsondef_serialize_record(text:str,record:dict):exception:RecordException=record["exception"]ifexceptionisnotNone:exception={"type":Noneifexception.typeisNoneelseexception.type銆俖_name__,"value":exception.value,"traceback":bool(exception.traceback),}serializable={"text":text,"record":{"extra":record["extra"],},}returnjson.dumps(serializable,default=str,ensure_ascii=False)+"\n"Handler._serialize_record=staticmethod(_serialize_record)logger.remove()logger.add(sys.stdout,serialize='json')璁板綍鍣ㄣ€傝皟璇曪紙f'鍝堝搱'锛夎緭鍑猴細{鈥滄枃鏈€濓細鈥?022-08-2801锛?0锛?5.326|璋冭瘯|__main__锛?妯″潡>锛?5-鍝堝搱\n鈥濓紝鈥滆褰曗€濓細{鈥滈澶栤€濓細{}}}鍘熺悊锛氭垜浠皢loguru/_handler.py涓殑_serialize_record鍑芥暟鏇挎崲涓鸿嚜宸辩殑_serialize_record鍑芥暟銆俵oguru/_handler.py涓殑_serialize_record鍑芥暟濡備笅鎵€绀猴細@staticmethoddef_serialize_record(text,record):exception=record["exception"]ifexceptionisnotNone:exception={"type":Noneifexception.typeisNoneelseexception.type.__name__,"value":exception.value,"traceback":bool(exception.traceback),}serializable={"text":text,"record":{"elapsed":{"repr":璁板綍["elapsed"],"seconds":璁板綍["elapsed"].total_seconds(),},"exception":寮傚父,"extra":璁板綍["extra"],"file":{鈥滃悕绉扳€濓細璁板綍[鈥滄枃浠垛€漖.name锛屸€滆矾寰勨€濓細璁板綍[鈥滄枃浠垛€漖.璺緞}锛屸€滃姛鑳解€濓細璁板綍[鈥滃姛鑳解€漖锛屸€滅骇鍒€濓細{鈥滃浘鏍団€濓細璁板綍[鈥漧evel"].icon,"name":璁板綍["level"].name,"no":璁板綍["level"].no,},"line":璁板綍["line"],"message":璁板綍["message"],"module":record["module"],"name":record["name"],"process":{"id":record["process"].id,"name":record["process"].name},"thread":{"id":record["thread"].id,"name":record["thread"].name},"time":{"repr":record["time"],"timestamp":record["time"].timestamp()},},}returnjson.dumps(serializable,default=str,ensure_ascii=False)+"\n"鍙牴鎹疄闄呴渶瑕侀€夋嫨