2013-11-20 35 views
0

我想从日志解析器生成html输出,有可能吗?如何直接解析log4j格式的日志文件。它期望列标题能够获取每行的内容。目前我手动添加少数列标题以获取select子句中的行内容。是否可以在不添加新行的情况下阅读内容?可以从微软日志解析器获得html输出吗?

我有很多以下类型的行,我想处理一些报告。

2013-11-06 16:30:14,019 INFO [com.taliantsoftware.flash.FlashRemotingServerProxy] |qatester|18|com.taliantsoftware.claims.ClaimService.retrieveClaimParticipationForCustomer 
2013-11-06 16:30:14,077 INFO [com.taliantsoftware.flash.FlashRemotingServerProxy] |qatester|49|com.taliantsoftware.claims.ClaimService.retrieveClaimProfileItems 
2013-11-06 16:30:14,921 INFO [com.taliantsoftware.flash.FlashRemotingServerProxy] |qatester|3|com.taliantsoftware.claims.ClaimService.findClaims 

我使用以下OQL来获得每种方法的平均和最大时间。 (utm,'。'))作为方法,AVG(TO_INT(SUBSTR(utm,11,SUB(LAST_INDEX_OF(utm,'|'))作为方法的一部分, ),11))))AS AVG_TIME,MAX(TO_INT(SUBSTR(utm,11,SUB(LAST_INDEX_OF(utm,'|'),11))))AS MAX_TIME,COUNT(*)FROM \ ced \ jboss \ node1 (utm,'| developer |')= 0或者INDEX_OF(utm,'| qatester |')= 0 AND(AVG(TO_INT '),11))))> 1000 OR MAX(TO_INT(SUBSTR(utm,11,SUB(LAST_INDEX_OF(utm,'|'),11))))> 1000)GROUP BY SUBSTR(utm,LAST_INDEX_OF(utm, ')'))ORDER BY AVG(TO_INT(SUBSTR(utm,11,SUB(LAST_INDEX_OF(utm,'|'),11))))DESC“

回答

0

您可以通过选择一个生成Xml/Html输出html文件并指定一个模板:

查询

logparser -i:TSV -iSeparator:space -tpl:YOURTEMPLATE.tpl "SELECT /.../ COUNT(*) AS AGG INTO output.html FROM /.../" 

YOURTEMPLATE.tpl

<lpheader> 
<html> 
    <head></head> 
    <body> 
    <table> 
     <tr> 
     <th>method</th> 
     <th>avg time</th> 
     <th>max time</th> 
     <th>count</th> 
     </tr> 
</lpheader> 
<lpbody> 
     <tr> 
     <td>%METHOD%</td> 
     <td>%AVG_TIME%</td> 
     <td>%MAX_TIME%</td> 
     <td>%AGG%</td> 
     </tr> 
</lpbody> 
    </table> 
    </body> 
</html> 

adopted from Log Parser Rocks!

+0

这是给我的错误,如下面。错误:无效参数“tpl” – user1614862

+0

LogParser -i:TSV -iSeparator:space -tpl:C:\ togo \ work \ log-analysis \ template.tpl“SELECT SUBSTR(user,LAST_INDEX_OF(user,'。'))AS方法,AVG(TO_INT(SUBSTR(user,11,SUB(LAST_INDEX_OF(user,'|'),11))))AS AVG_TIME,MAX(TO_INT(SUBSTR(user,11,SUB(LAST_INDEX_OF(user,'|') ),11))))AS MAX_TIME,COUNT(*)INTO C:\ togo \ work \ log-analysis \ server-log.html FROM C:\ jboss-5.1.0.GA-LAB \ server \ powersuite \ log \ user.log WHERE INDEX_OF(user,'| developer |')= 0或INDEX_OF(user,'| qatester |')= 0 AND(AVG(TO_INT(SUBSTR(user,11,SUB(LAST_INDEX_OF(user,'| '),11))))> 1000 --------- – user1614862

+0

尝试将tpl:参数放在引号中,额外的冒号可能有问题,例如-tpl:“C:\ togo \ template.tpl” – beavel