package com.jack.logdata.collector;
import com.jack.logdata.collector.bean.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.UnsupportedEncodingException;
import java.util.Random;
/**
* @desc:
* @author:ctcui
* @data: 2021.02.28 14:21
*/
public class LogDataCollectorApplication {
private static final Logger logger = LoggerFactory.getLogger(LogDataCollectorApplication.class);
private static Random rand = new Random();
private static int s_mid = 0;
private static int s_uid = 0;
private static int s_goodsid = 0;
public static void main(String[] args) {
Long delay = Long.valueOf((args.length > 0) ? Long.parseLong(args[0]) : 0L);
int loop_len = (args.length > 1) ? Integer.parseInt(args[1]) : 1000;
generateLog(delay, loop_len);
}
private static void generateLog(Long delay, int loop_len) {
for (int i = 0; i < loop_len; i++) {
AppStart appStart;
String jsonString;
JSONObject json;
JSONArray eventsArray;
long millis;
int flag = rand.nextInt(2);
switch (flag) {
case 0:
appStart = generateStart();
jsonString = JSON.toJSONString(appStart);
logger.info(jsonString);
break;
case 1:
json = new JSONObject();
json.put("ap", "app");
json.put("cm", generateComFields());
eventsArray = new JSONArray();
if (rand.nextBoolean()) {
eventsArray.add(generateDisplay());
json.put("et", eventsArray);
}
if (rand.nextBoolean()) {
eventsArray.add(generateNewsDetail());
json.put("et", eventsArray);
}
if (rand.nextBoolean()) {
eventsArray.add(generateNewList());
json.put("et", eventsArray);
}
if (rand.nextBoolean()) {
eventsArray.add(generateAd());
json.put("et", eventsArray);
}
if (rand.nextBoolean()) {
eventsArray.add(generateNotification());
json.put("et", eventsArray);
}
if (rand.nextBoolean()) {
eventsArray.add(generateBackground());
json.put("et", eventsArray);
}
if (rand.nextBoolean()) {
eventsArray.add(generateError());
json.put("et", eventsArray);
}
if (rand.nextBoolean()) {
eventsArray.add(generateComment());
json.put("et", eventsArray);
}
if (rand.nextBoolean()) {
eventsArray.add(generateFavorites());
json.put("et", eventsArray);
}
if (rand.nextBoolean()) {
eventsArray.add(generatePraise());
json.put("et", eventsArray);
}
millis = System.currentTimeMillis();
logger.info(millis + "|" + json.toJSONString());
break;
}
try {
Thread.sleep(delay.longValue());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
private static JSONObject generateComFields() {
AppBase appBase = new AppBase();
appBase.setMid(s_mid + "");
s_mid++;
appBase.setUid(s_uid + "");
s_uid++;
appBase.setVc("" + rand.nextInt(20));
appBase.setVn("1." + rand.nextInt(4) + "." + rand.nextInt(10));
appBase.setOs("8." + rand.nextInt(3) + "." + rand.nextInt(10));
int flag = rand.nextInt(3);
switch (flag) {
case 0:
appBase.setL("es");
break;
case 1:
appBase.setL("en");
break;
case 2:
appBase.setL("pt");
break;
}
appBase.setSr(getRandomChar(Integer.valueOf(1)));
flag = rand.nextInt(2);
switch (flag) {
case 0:
appBase.setAr("BR");
case 1:
appBase.setAr("MX");
break;
}
flag = rand.nextInt(3);
switch (flag) {
case 0:
appBase.setBa("Sumsung");
appBase.setMd("sumsung-" + rand.nextInt(20));
break;
case 1:
appBase.setBa("Huawei");
appBase.setMd("Huawei-" + rand.nextInt(20));
break;
case 2:
appBase.setBa("HTC");
appBase.setMd("HTC-" + rand.nextInt(20));
break;
}
appBase.setSv("V2." + rand.nextInt(10) + "." + rand.nextInt(10));
appBase.setG(getRandomCharAndNumr(Integer.valueOf(8)) + "@gmail.com");
flag = rand.nextInt(4);
switch (flag) {
case 0:
appBase.setHw("640*960");
break;
case 1:
appBase.setHw("640*1136");
break;
case 2:
appBase.setHw("750*1134");
break;
case 3:
appBase.setHw("1080*1920");
break;
}
long millis = System.currentTimeMillis();
appBase.setT("" + (millis - rand.nextInt(99999999)));
flag = rand.nextInt(3);
switch (flag) {
case 0:
appBase.setNw("3G");
break;
case 1:
appBase.setNw("4G");
break;
case 2:
appBase.setNw("WIFI");
break;
}
appBase.setLn(((-34 - rand.nextInt(83)) - rand.nextInt(60) / 10.0D) + "");
appBase.setLa(((32 - rand.nextInt(85)) - rand.nextInt(60) / 10.0D) + "");
return (JSONObject)JSON.toJSON(appBase);
}
private static JSONObject generateDisplay() {
AppDisplay appDisplay = new AppDisplay();
boolean boolFlag = (rand.nextInt(10) < 7);
if (boolFlag) {
appDisplay.setAction("1");
} else {
appDisplay.setAction("2");
}
String goodsId = s_goodsid + "";
s_goodsid++;
appDisplay.setGoodsid(goodsId);
int flag = rand.nextInt(6);
appDisplay.setPlace("" + flag);
flag = 1 + rand.nextInt(2);
appDisplay.setExtend1("" + flag);
flag = 1 + rand.nextInt(100);
appDisplay.setCategory("" + flag);
JSONObject jsonObject = (JSONObject)JSON.toJSON(appDisplay);
return packEventJson("display", jsonObject);
}
private static JSONObject generateNewsDetail() {
AppNewsDetail appNewsDetail = new AppNewsDetail();
int flag = 1 + rand.nextInt(3);
appNewsDetail.setEntry(flag + "");
appNewsDetail.setAction("" + (rand.nextInt(4) + 1));
appNewsDetail.setGoodsid(s_goodsid + "");
flag = 1 + rand.nextInt(3);
appNewsDetail.setShowtype(flag + "");
flag = rand.nextInt(6);
appNewsDetail.setShowtype("" + flag);
flag = rand.nextInt(10) * rand.nextInt(7);
评论0