Rev 2392 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.datalogger;import in.shop2020.datalogger.event.Event;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;import org.apache.commons.lang.StringUtils;public class DataLogParser {private static String dataFile = "/var/log/website/data.log";private static Map<String, List<Event>> logDataMap;private static Map<Long, String> orderSessionMap;private static Map<Long, Set<String>> userSessionMap;private static void parseFile(String dataFile) {// TODO Auto-generated method stublogDataMap = new HashMap<String, List<Event>>();orderSessionMap = new HashMap<Long, String>();userSessionMap = new HashMap<Long, Set<String>>();File f = new File(dataFile);if(!f.exists()) {System.out.println(dataFile + " - does not exist");}FileInputStream fis = null;try {fis = new FileInputStream(f);BufferedReader br = new BufferedReader(new InputStreamReader(fis));String line;while((line = br.readLine()) != null){String[] logFields = StringUtils.split(line, ",");Event event = Event.createEvent(logFields);String sessionId = event.getSessionId();if (!logDataMap.containsKey(sessionId)) {List<Event> logEvents = new ArrayList<Event>();logEvents.add(event);logDataMap.put(sessionId, logEvents);}else {logDataMap.get(sessionId).add(event);}String eventName = event.getEventType().name();if(eventName.equals(EventType.ORDER_CREATION.name())) {Long orderId = Long.parseLong(logFields[5].trim());if (!orderSessionMap.containsKey(orderId)) {orderSessionMap.put(orderId, sessionId);}}try {Long userId = event.getUserId();if (!userSessionMap.containsKey(userId)) {Set<String> userSessions = new HashSet<String>();userSessions.add(sessionId);userSessionMap.put(userId, userSessions);}else {userSessionMap.get(userId).add(sessionId);}} catch (NumberFormatException e) {// e.printStackTrace();}}} catch (IOException e) {e.printStackTrace();}finally {if(fis != null) {try {fis.close();} catch (IOException e) {e.printStackTrace();}}}}private static void printHistoryEventsForOrder(long i) {String session = orderSessionMap.get(i);List<Event> events = logDataMap.get(session);for (Event event : events) {System.out.println(event);}}public static void main(String[] args) {parseFile(dataFile);/*for (Map.Entry<String, List<String>> entry : logDataMap.entrySet()) {List<String> logs = entry.getValue();for (String log : logs) {System.out.println(entry.getKey() + " : " + log);}}for (Map.Entry<Long, Set<String>> entry : userSessionMap.entrySet()) {Set<String> sessions = entry.getValue();for (String session : sessions) {System.out.println(entry.getKey() + " : " + session);}}for (Map.Entry<Long, String> entry : orderSessionMap.entrySet()) {System.out.println(entry.getKey() + " : " + entry.getValue());}*/System.out.println(orderSessionMap.size());System.out.println(userSessionMap.size());System.out.println(logDataMap.size());printHistoryEventsForOrder(500);}}