[4876|164228-4985] 164226855268: ***********服务job20收到综合前置的应答报文*********** [4876|164228-4985] 164226855268: 服务job20从保留域获取到流水号: [164226855268] [4876|164228-4985] 164226855268: 服务job20从保留域获取到交易码:[2013K4] [4876|164228-4985] 164226855268: 发卡机发起联机交易, 调用服务job2013处理交易应答. [4876|164228-4999] 164226855268: 获取交易流水结构成功 [4876|164228-5002] 164226855268: 取终端[02700802]信息成功 [4876|164228-5002] 164226855268: 开始解包特色业务平台应答报文... [4876|164228-5003] 164226855268: 前置报文头: [4876|164228-5003] 164226855268: [渠道交易码]: [02316002 ] [4876|164228-5003] 164226855268: [渠道流水号]: [685526820060 ] [4876|164228-5003] 164226855268: [帐户类型 ]: [00] [4876|164228-5003] 164226855268: [平台流水号]: [ ] [4876|164228-5003] 164226855268: [平台响应码]: [BNS00000000] [4876|164228-5003] 164226855268: [备用字段 ]: [13133 ] [4876|164228-5003] 164226855268: 前置报文头InHead: [4876|164228-5003] 164226855268: [abyFlowNo ]: [685526820060] [4876|164228-5003] 164226855268: [abyBranchNo ]: [5851] [4876|164228-5003] 164226855268: [abyTeller ]: [13133] [4876|164228-5003] 164226855268: 前置报文体: [4876|164228-5003] 164226855268: [客户号 ]: [ 24464061-3] [4876|164228-5003] 164226855268: [机构号 ]: [003] [4876|164228-5003] 164226855268: [分行号 ]: [5851] [4876|164228-5003] 164226855268: [终端号 ]: [ ] [4876|164228-5003] 164226855268: [出纳号 ]: [13133] [4876|164228-5003] 164226855268: [证件类型 ]: [51] [4876|164228-5003] 164226855268: [ID Dash ]: [-] [4876|164228-5003] 164226855268: [证件号码 ]: [429001198609206113 ] [4876|164228-5003] 164226855268: [终端交易流水号 ]:[091773] [4876|164228-5003] 164226855268: [终端号 ]:[02700802] [4876|164228-5003] 164226855268: [审核请求时间 ]:[20180302164218] [4876|164228-5003] 164226855268: [交易日期 ]:[20180302] [4876|164228-5003] 164226855268: [交易时间 ]:[164231] [4876|164228-5003] 164226855268: [客户号 ]:[ 244640613] [4876|164228-5026] 164226855268: 成功解包特色业务平台应答报文[BNS00000000] [4876|164228-5026] 164226855268: 响应码转换[交易成功] [4876|164228-5026] 164226855268: 转换应答码[BNS00000000]到[00] [4876|164228-5026] 164226855268: 开始调用服务[2013K4]处理交易... [4876|164228-5026] 164226855268: 调用服务[2013K4]处理应答成功 [4876|164228-5336] 164226855268: SJL_Open connect HSM suc sock[14] [4876|164228-5616] 164226855268: 远程加密机连接关闭! [4876|164228-5617] 164226855268: MessageType : 0210 164226855268: [field: 003][PROCESSING CODE ]: [800000] 164226855268: [field: 007][TRANSM DATE&TIME ]: [0302164231] 164226855268: [field: 011][SYSTEMS_TRACE # ]: [091778] 164226855268: [field: 012][TIME,LOCAL TRAN ]: [164228] 164226855268: [field: 013][DATE,LOCAL TRAN ]: [20180302] 164226855268: [field: 037][RETR. REF. NUM. ]: [164226855268] 164226855268: [field: 039][RESPONSE_CODE ]: [00] 164226855268: [field: 041][TERMINAL_ID ]: [02700802] 164226855268: [field: 048][ADDITION DATA_PRI]: 27[FK1jlkhxx 24464061-3] 164226855268: [field: 062][INVOICE REF NUM. ]: 13[5043424E533030303030303030]··· 164226855268: [field: 128][MSG. AUTH. CODE ]: [00D53648] [4876|164228-5618] 164226855268: 发送应答报文到消息队列成功,通讯保留域[00004901422628] [4876|164228-5618] *************交易应答处理完毕**************
[4876|164228-4985] 164226855268: ***********服务job20收到综合前置的应答报文 [4876|164228-4985] 164226855268: 服务job20从保留域获取到流水号: [164226855268] [4876|164228-5003] 164226855268: [证件号码 ]: [429001198609206113 ] [4876|164228-5026] 164226855268: 响应码转换[交易成功] 164226855268: [field: 011][SYSTEMS_TRACE # ]: [091778] 164226855268: [field: 041][TERMINAL_ID ]: [02700802]
信息类型为: 应答报文 前置交易流水: 164226855268 证件号码: 429001198609206113 交易返回状态: 交易成功 发卡机内部流水:091778 发卡机编号: 02700802
首先根据日志提示关键字,将日志拆分成信息类型和信息主体。然后对信息类型为响应报文的详细信息或请求报文的详细信息进行 KV 正则解析,最后通过字段重命名进行字段规范
.*?\]\s+(?<client_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).*?(?<msg_type>请求报文).*?\n(?<request_msg>[\s\S]+)
.*?(?<msg_type>应答报文).*?\n(?<respond_msg>[\s\S]+)

根据上述操作更理想的效果还需要进行进一步处理,比如:将带有中文的字段重命名。将带有返回码的字段进行字典解析等工作,方法就比较容易在此不再赘述
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!