Пример #1
0
func WriteLog2(logInfo LiveLogModel, ipaddress string) {
	fmt.Printf("\nwriteLog2...\n")
	if logInfo.LiveId != "" && logInfo.LogContent != "" {
		if index := strings.Index(logInfo.LiveId, "?type="); index != -1 {
			logInfo.LiveId = common.SubString(logInfo.LiveId, 0, index)
		}
		logInfo.LiveId = strings.TrimPrefix(logInfo.LiveId, "liveid_")
		logInfo.Ip = ipaddress
		if strings.Contains(logInfo.LogContent, "[bR:") && strings.Contains(logInfo.LogContent, " k/s") {
			prefix := "bR:"
			brIdx := strings.Index(logInfo.LogContent, "bR:")
			ksidx := strings.Index(logInfo.LogContent, " k/s")
			str := common.SubString(logInfo.LogContent, brIdx+len(prefix), ksidx-brIdx-len(prefix))
			spd, _ := strconv.ParseFloat(str, 64)
			fmt.Printf("spd:%v\n", spd)

			logInfo.Tx = (int64)(spd * 1000)
			logInfo.Time = time.Now().UnixNano()
			//logModelChan <- logInfo
		} else {
		}

		fmt.Println(logInfo)
	}
}
Пример #2
0
func WriteLog(logInfo LiveLogModel, ipaddress string) {
	fmt.Printf("writeLog...\n")
	if logInfo.LiveId != "" && logInfo.LogContent != "" {
		if index := strings.Index(logInfo.LiveId, "?type="); index != -1 {
			logInfo.LiveId = common.SubString(logInfo.LiveId, 0, index)
		}
		logInfo.LiveId = strings.TrimPrefix(logInfo.LiveId, "liveid_")
		logInfo.Ip = ipaddress
		if strings.Contains(logInfo.LogContent, "[bR:") {
			prefix := "bR:"
			brIdx := strings.Index(logInfo.LogContent, "bR:")
			newStr := common.SubString(logInfo.LogContent, brIdx+len(prefix), len(logInfo.LogContent)-brIdx)
			numIdx := 0
			for i, v := range newStr {
				if v >= 48 && v <= 57 { // 0-9 assic 48-57
					continue
				}
				if v == 46 { // . assic 46
					continue
				}
				numIdx = i // 数字索引
				break
			}
			spdStr := common.SubString(newStr, 0, numIdx)
			var spd int64

			strTye := common.SubString(newStr, numIdx, len(logInfo.LogContent)-numIdx) // k/s... OR b/s...
			strTye = strings.TrimLeft(strTye, " ")
			if strTye[0] == 'b' {
				ss, _ := strconv.Atoi(spdStr)
				spd = (int64)(ss)
			} else if strTye[0] == 'k' {
				ss, _ := strconv.ParseFloat(spdStr, 64)
				spd = (int64)(ss * 1000)
			}

			fmt.Printf("type[%v] spd:%v\n", string(strTye[0]), spd)

			logInfo.Tx = spd
			logInfo.Time = time.Now().UnixNano()
			//logModelChan <- logInfo
		} else {
		}

		fmt.Println(logInfo)
	}
}