package com.hxh.spring.test;
|
|
import org.junit.Test;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
|
import java.io.FileInputStream;
|
import java.io.FileNotFoundException;
|
import java.util.*;
|
|
public class LogTest {
|
|
private final static Logger logger = LoggerFactory.getLogger(LogTest.class);
|
|
@Test
|
public void testLog() throws FileNotFoundException {
|
int count = 0;
|
String path = "";
|
Scanner scanner = new Scanner(new FileInputStream("C:\\Users\\Administrator\\Desktop\\日志\\布丸播放\\video_play.2021-03-12.log"));
|
while (scanner.hasNextLine()) {
|
String text = scanner.nextLine();
|
if (text != null && text.contains("getUserVideoDetail:")) {
|
String content = text.split("getUserVideoDetail:")[1];
|
content = content.replace("##", "# #");
|
String[] sts = content.split("#");
|
// device,utdId, loginUid, detailSystemId, videoId, resourceId, from
|
resource(sts[4]);
|
video(sts[3]);
|
|
count++;
|
}
|
}
|
scanner.close();
|
System.out.println(count);
|
printMap(resourceMap);
|
printMap(videoMap);
|
}
|
|
Map<String, Integer> resourceMap = new HashMap<>();
|
|
|
private void resource(String resourceId) {
|
Integer r = resourceMap.get(resourceId);
|
if (r == null) {
|
resourceMap.put(resourceId, 0);
|
}
|
resourceMap.put(resourceId, resourceMap.get(resourceId) + 1);
|
}
|
|
Map<String, Integer> videoMap = new HashMap<>();
|
|
private void video(String videoId) {
|
Integer r = videoMap.get(videoId);
|
if (r == null) {
|
videoMap.put(videoId, 0);
|
}
|
videoMap.put(videoId, videoMap.get(videoId) + 1);
|
}
|
|
private void printMap(Map<String, Integer> map) {
|
//list排序
|
TreeMap<Integer, Set<String>> ordersMap = new TreeMap<>(Comparator.reverseOrder());
|
for (Iterator<String> its = map.keySet().iterator(); its.hasNext(); ) {
|
String key = its.next();
|
Integer value = map.get(key);
|
if (ordersMap.get(value) == null) {
|
ordersMap.put(value, new HashSet<>());
|
}
|
ordersMap.get(value).add(key);
|
}
|
|
|
|
|
|
int p = 0;
|
for (Iterator<Integer> its = ordersMap.keySet().iterator(); its.hasNext(); ) {
|
Integer key = its.next();
|
System.out.println(key + ":" + ordersMap.get(key));
|
p++;
|
if (p > 100) {
|
break;
|
}
|
}
|
}
|
|
}
|