【问题标题】:log parser 2.2 query, Text parsing and validating日志解析器 2.2 查询、文本解析和验证
【发布时间】:2011-05-11 12:05:37
【问题描述】:

有一个简单的文本文件必须使用日志解析器进行解析。 刚开始使用日志解析器,但不了解它的解析限制是什么。我的意思是我可以通过使用 logparser 来做这样的事情吗

要解析的文本行:

1022303Name WXP3

我必须像这样解析

第一个数字1 是行名
接下来的三位数字 022 是 errorNumber
接下来的三位数字 303 是用户 ID
接下来的十个字符 Name 是用户名
接下来的 4 个字符 WXP3 是 SystemName

我无法理解我们是否可以从日志解析器执行此查询... 如果是,则给出任何示例查询。

非常欢迎使用任何其他工具来执行此操作

【问题讨论】:

    标签: c# parsing text-parsing logparser


    【解决方案1】:

    你想要 SUBSTR 函数。

    logparser -i:textline "select substr(text, 0, 1) AS RowName, substr(text, 1, 3) AS ErrorNumber, substr(text, 4, 3) AS UserId, substr(text, 7, 10) AS UserName, substr(text, 17, 4) AS SystemName from temp.txt
    

    这假设长度确实设置为特定大小。

    上面使用的temp.txt文本:

    1022303Name1     WXP3
    1022303Name 2    WXP4
    1022303Name 3    WXP5
    1022303Name 4    WXP6
    1022303Name 5    WXP7
    1022303Name 6    WXP8
    1022303Name 7    WXP9
    1022303Name 8    WXPa
    

    由于之前已链接到它,我还会将您指向Log Parser Plus,我“运行”它,并且可能对其他日志解析器功能有所帮助。

    【讨论】:

    • 以防万一 ... SUBSTR(text-to-search, start-position, characters-to-parse) 其中 start-position 是从 0 开始的。
    • Thanx... 我认为它会解决我的问题。还有一个问题,我们可以验证数字类型或文本类型的数据吗?
    • 我不知道。但是您可能会使用 ROUND 或 TO_INT (您必须测试以查看它对非数字字符串的作用)......但是,我希望您接受日志文件本身是有效的(用于日志解析器)。如果创建这些日志的应用程序没有输出有效的日志文件,那么这是一个更大的问题。
    • 是的!正确,你能推荐任何教程网址吗...我对日志解析器感兴趣
    • 官方论坛位于forums.iis.net/default.aspx?GroupID=51,还有一本书“Microsoft Log Parser Toolkit”(我认为它更多的是参考而不是教程)。除此之外......不是真的。那里有很多查询。我已经在答案中提到了我的网站,Server Fault 和 Stack Overflow 有很多很好的查询答案。如果你找到了,请告诉我!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 2016-01-09
    • 2015-04-26
    • 1970-01-01
    相关资源
    最近更新 更多