2

LogParser 不是开源的,我需要这个功能用于我正在处理的开源项目。

我想编写一个库,允许我查询巨大的(主要是 IIS)日志文件,最好使用 Linq。

你有任何可以帮助我的链接吗?LogParser 之类的程序如何运行得如此之快?它如何处理内存限制?

4

2 回答 2

2

它可能会在读取日志时处理日志中的信息。这意味着它(库)不必分配大量内存来存储信息。它可以读取一个块,对其进行处理并将其丢弃。这是处理数据的一种常用且非常有效的方法。

例如,您可以逐行工作并解析每一行。对于实际的解析,您可以编写状态机,或者如果要求允许,请使用正则表达式。

另一种方法是读取和解析数据的状态机。如果由于某种原因,日志条目跨越多行,则可能需要这样做。

一些状态机相关链接:

一个用 C 编写的非常简单的状态机:http: //snippets.dzone.com/posts/show/3793

很多与 python 相关的代码,但有些部分是普遍适用的:http: //www.ibm.com/developerworks/library/l-python-state.html

于 2009-04-17T15:56:11.380 回答
0

如果您的目标是使用 LINQ 查询 IIS 日志数据。然后我建议您将原始 IIS 日志数据移动到数据库并使用 LINQ 查询数据库。这篇博文可能会有所帮助。

http://getsrirams.blogspot.in/2012/07/migrate-iislog-data-to-sqlce-4-database.html

于 2012-07-19T10:34:10.870 回答