我正在编写一个简单的实用程序来获取应用程序日志并将其显示给用户。它需要从多个文件中获取日志条目并将它们合并到一个内部存储中。合并基于日志输入时间,因此多个条目可能具有相同的时间。请注意,日志的大小相当小,因此最大大小可能是10个文件,每个文件包含2,000个日志条目。
我还想向用户提供此信息,但允许他们根据不同的日志记录级别(调试,警告,错误等)进行过滤,并根据文件来源进行过滤。这听起来像是一个非常常见的问题类型,因此其他人必须拥有最佳方法的经验。我曾想过以下......
1,使用DataSet存储日志条目,然后使用DataView应用过滤,排序。
2,使用几个List<>实例,主服务器,然后是过滤到所需条目的副本,并将自定义IComparer函数应用于过滤列表以获得正确的排序。
思想?
答案 0 :(得分:2)
我认为数据足够小以适应内存,而您不必拥有数据库和外部文件的开销。
两者中的任何一个都应该运作良好。我对List<T>
感觉更舒服,所以更喜欢这样,但可以理解使用DataTable
等的吸引力。
另一个选择是在您选择的任何内部数据存储上使用LINQ。这可能会简化查询。
我怀疑你选择的List<T>
或任何集合将使用比DataTable
更少的内存。但是,除非您的日志条目是 huge ,否则我不希望内存使用成为问题。
答案 1 :(得分:1)
我个人的做法是将日志导入数据库,然后使用标准数据库查询和数据绑定来过滤并向用户显示数据。