【问题标题】:Is HTML output possible from Microsoft's log parser?微软的日志解析器可以输出 HTML 吗?
【发布时间】:2022-02-16 23:29:27
【问题描述】:

是否可以从日志解析器生成 HTML 输出?我想直接解析 log4j 格式的日志文件。它期望列标题获取每一行的内容。

目前我正在手动添加几个列标题以获取 select 子句中的行内容。是否可以在不添加新行的情况下阅读内容。

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

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 来获取每种方法的平均和最大时间。

LogParser -i:TSV -iSeparator:space "SELECT SUBSTR(utm, LAST_INDEX_OF(utm, '.')) AS METHOD, 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\temp.log WHERE INDEX_OF(utm, '|developer|')=0 OR INDEX_OF(utm, '|qatester|')=0  AND (AVG(TO_INT(SUBSTR(utm, 11,SUB(LAST_INDEX_OF(utm, '|'), 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"

【问题讨论】:

    标签: html logparser


    【解决方案1】:

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

    查询

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

    你的模板.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!

    【讨论】:

    • 它给了我一个类似下面的错误。错误:无效参数“tpl”
    • 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 \server.log WHERE INDEX_OF(user, '|developer|')=0 OR INDEX_OF(user, '|qatester|')=0 AND (AVG(TO_INT(SUBSTR(user, 11,SUB(LAST_INDEX_OF(user, '| '), 11)))) > 1000 ---------
    • 尝试将 tpl: 参数放在引号中。额外的冒号可能有问题。例如。 -tpl:"C:\togo\template.tpl"
    • 还添加“-o:TPL”以明确告诉 LogParser 使用“TPL”(即“模板”)输出格式。
    • 您可以使用“-iHeaderFile”选项加上包含单个标题行的文件的路径来强制标题。或者按照 Filburt 的建议使用“AS”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 2012-10-28
    相关资源
    最近更新 更多