package com.taobao.loganalyzer.input.tanxpv.parser; import com.taobao.loganalyzer.input.tanxpv.common.LogField; import com.taobao.loganalyzer.input.tanxpv.common.LogParser; import com.taobao.loganalyzer.input.tanxpv.common.LogRecord; import com.taobao.loganalyzer.input.tanxpv.common.SectionParser; /** * Section 2:共用Section解析类。该Section保存所有的公用信息。 * @see <a href="http://sps.corp.alimama.com/ad/ADExchange/DocLib/Tan(X)%E7%B3%BB%E7%BB%9F%E6%97%A5%E5%BF%97%E8%AE%BE%E8%AE%A1.pdf">点击日志格式</a> * @author kangtian * */ public class CommonSectionParser implements SectionParser { /** * 对common Section进行解析 * b) section2-common section为空--------不允许 */ public boolean parse(LogParser lp, LogRecord lr) { if (lp.isCurCharCA()) { return false ; // if (!lp.hasNextChar()) return false; } else{ //time stamp lr.addField("Timestamp", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //pid lr.addField("Pid", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //0:+处理路径 lr.addField("ProcessPath", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //浏览用户IP lr.addField("UserIP", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //用户Cookie lr.addField("Cookie", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //Session ID lr.addField("SessionID", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //cg lr.addField("Cg", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //展现类型 lr.addField("ViewType", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //展现子类型 lr.addField("ViewSubCategory", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //Pub接口代码类型 lr.addField("PubCodeType", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //abtag lr.addField("AbTag", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //标示是否后续请求 lr.addField("FollowRequest", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //from lr.addField("FromURL", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //topframe的referrer lr.addField("TopFrameRefer", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //当前window的referrer lr.addField("WindowRefer", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //user agent lr.addField("UserAgent", new LogField(LogField.TYPE_STRING, lp.getNextCB())); //ref pid lr.addField("RefPid", new LogField(LogField.TYPE_STRING, lp.getNextCA())); } if (lp.isError()) return false; return true; } }