example1.py
1.RawLogPath :原始日志存放位置
2.RawLogFile :原始日志名字
3.OutputPath :输出文件的存放位置
para:__init__():
1.removable:布尔值
2.removeCol:列表,要被抛弃的关键字在wordSeq列表中的序号
3.regular:布尔值
4.rex:列表,两个正则表达式,说明哪些关键词用 空 替代
5.groupNum:整型,分成的组数
myparser:__init__():
1.wordLL:列表
2.loglineNum:整型
3.termpairLLT:列表
4.logNumPerGroup:列表
5.groupIndex:字典
6.termPairLogNumLD:列表
7.logIndexPerGroup:列表
termpairGene():
1.lines:原始日志记录
2.line:原始日志记录中的每一条记录
3.wordSeq:列表,存放一条正则化后的日志记录被切割成单个关键字的结果 -> 后被更新为去掉前面已经定好的需要去掉的关键字后剩余的关键字
4.wordLL:列表,每个元素均为元组(将wordSeq列表变为元组,存放此中);所有记录均存于此
initialization():
1.wordL:wordLL中的一个元素
2.termpair:元组,放相邻关键字组成的关键字对
3.wordLT:列表,放的是line对应的所有的关键字对
4.termpairLLT:列表,每个元素也是列表(wordLT == termpairLT)lines
5.newDict:字典
6.termPairLogNumLD:列表,每个元素均为字典(每组日志文件中所有的关键字对中的一个:总体出现的次数)
7.logNumPerGroup:
8.loglineNum:整型,日志总数
9.groupIndex:每条日志记录对应的组号,此时为随机分配,后面会变。字典,{日志记录编号:属于哪个group}
10.logNumPerGroup:列表,每个元素对应此组随机分配后的日志条数
11.currGroupIndex:随机分配后,每条日志记录对应的组号
LogMessParti():
1.curGroup:日志记录当前属于哪个group
2.changed:布尔值,是否交换组号
signatConstr():
1.candidateTerm:列表,14个元素(每个元素均为字典 -> 出现次数超过队列中日志总数一半的关键字:次数)
2.candidateSeq:列表,元素为 newCandidate ,为14个字典(keySeq(tuple(newCandiSeq)):出现次数)
3.signature :列表,索引为组号,元素内容是本组出现次数最多的关键字序列
4.groupIndex:字典;日志记录编号:所属group编号
5.logIndexPerGroup:列表,索引为组号,元素依旧为列表,存放在此组中的日志的lineNo。
6.wordFreqPerGroup:长度为14的列表;其中每个元素均为字典(此组日志记录的关键字:出现次数)
7.candidateTerm:列表;每个元素都是字典,出现次数超过日志行数一半的关键字:出现次数
8 .newCandiSeq:列表,元素为选定的关键字,来自 candidateTerm
9.keySeq:将 newCandiSeq 变成元组
templatetxt():
1.numLogOfEachGroup:第i组的所有日志记录的编号