diff --git a/src/modules/network_data/service/amf.go b/src/modules/network_data/service/amf.go index 8956c32c..ac9b94d3 100644 --- a/src/modules/network_data/service/amf.go +++ b/src/modules/network_data/service/amf.go @@ -59,7 +59,8 @@ func (r AMF) GetAuditLog(neId string) ([]map[string]any, error) { // 解析日志 data := make([]map[string]any, 0) for _, item := range arr { - if len(item) < 10 { + arrLen := len(item) + if arrLen < 6 { continue } timeStr := item[0] @@ -74,10 +75,27 @@ func (r AMF) GetAuditLog(neId string) ([]map[string]any, error) { ranUeNgapId := strings.TrimPrefix(item[3], "RAN-UE-NGAP-ID:") gnbId := strings.TrimPrefix(item[4], "GNB-ID:") gnbAddr := strings.TrimPrefix(item[5], "GNB-ADDR:") - tai := strings.TrimPrefix(item[6], "TAI:") - opType := strings.TrimPrefix(item[7], "OP-TYPE:") - regType := strings.TrimPrefix(item[8], "REG-TYPE:") - result := strings.TrimPrefix(item[9], "RESULT:") + tai := "" + opType := "" + regType := "" + result := "" + switch arrLen { + case 8: + opType = strings.TrimPrefix(item[6], "OP-TYPE:") + result = strings.TrimPrefix(item[7], "CAUSE:") + case 9: + opType = strings.TrimPrefix(item[6], "OP-TYPE:") + regType = strings.TrimPrefix(item[7], "DEREG-TYPE:") + result = strings.TrimPrefix(item[8], "RESULT:") + case 10: + tai = strings.TrimPrefix(item[6], "TAI:") + opType = strings.TrimPrefix(item[7], "OP-TYPE:") + regType = strings.TrimPrefix(item[8], "REG-TYPE:") + result = strings.TrimPrefix(item[9], "RESULT:") + default: + fmt.Printf("Warning: unexpected log format, arrLen=%d, item=%v\n", arrLen, item) + continue + } data = append(data, map[string]any{ "time": t.Format(time.DateTime),