首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >筛选日志文件

筛选日志文件
EN

Stack Overflow用户
提问于 2017-07-04 00:10:00
回答 1查看 585关注 0票数 1

我有一个日志文件,它是Nunit Runner的日志输出

我想解析整个文件以提取数据;

以下是示例日志文件:

我想提取测试计数、通过测试和失败测试

如何使用正则表达式获取数据。

我使用Pattern和Scanner类来扫描数据。

下面是我用来读取文件的示例函数

更新:

我已经使用了以下代码来提取测试结果,我想对此代码有一些建议:

代码语言:javascript
复制
  public int FilterLogFile(File LogFile) {
    int TestCount = 0;
    try {


        String Line = "";
        BufferedReader br = new BufferedReader(new FileReader(LogFile));
        while ((Line = br.readLine()) != null) {
            Scanner scanner = new Scanner(Line);
            String line = scanner.findInLine(".*(Test Count:)\\s+\\d+\\D+\\s+.*(Passed:)\\s+\\d+\\D+\\s+.*(Failed:)\\s+\\d+");
            if (line != null) {
                System.out.println("Detected Line: " + line);
                TestCount = ExtractData(Line);
                break;
            } else {
                continue;
            }
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }

    return TestCount;
}

 private int ExtractData(String strLine) {
    int Count = 0;
    try {

        String[] Data = strLine.split(",");
        for (String str : Data) {
            if (str.contains("Test Count:")) {
                int value = Integer.parseInt(str.replaceAll("[^0-9]", ""));
                Count = value;
                System.out.println(value);
                break;
            }
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return Count;
}

我正在处理的示例日志是:

EN

回答 1

Stack Overflow用户

发布于 2017-07-04 16:23:41

我希望这对你有帮助,

使用这个,

代码语言:javascript
复制
a = "[test run server,overall result: Failed, Test count:09, Passed: 14, Failed: 1, skipped: 16, start: 1, end: 10, asd: asd,akdsu]"

/Test.+.(?:Failed:.\d+)/ 

正则表达式:/Test.+.(?:Failed:.\d+)/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44890015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档