| | |
| | | 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() { |
| | | logger.info("测试"); |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |