我正在编写一个软件组件,可以即时显示某个日志文件的内容。想想提升tail -f
。它应该是更大的GUI的一部分。
我想知道应该选择哪个GUI组件来实现可显示日志文件输出的可滚动textarea。
我的三个主要要求是:
foo
的单元格,而隐藏其不包含foo
的邻居,与过滤不同。如果组件遵循MVC模式也会很好。
当然可以使用常规的只读textarea实现所有这些,但我想知道是否有更容易的东西。这里唯一不寻常的功能是过滤,毕竟可搜索的文本区域在我看来像是一个共同的要求。
也可以接受Java GUI解决方案(它也可以用于Java应用程序)。
BareTail与我正在寻找的相似,但遗憾的是它不能作为一个组件使用。
答案 0 :(得分:1)
创建此类GUI的关键概念:
你想要like this的东西吗?它并非完全开源,但我可以自由地分享它的一些属性。
答案 1 :(得分:1)
为了实现精确过滤,我认为你应该重新考虑将这些行构造成“列”,至少在引擎盖下。对于显示这些列的直观UI,我也是对的。对于着色,这不应该有所作为。
从网格中复制行应该很容易实现,只要有一些多行选择可用,将记录转换回某些ToString方法中的“原始”文本行应该比其他方式更容易。
因此,我认为你应该采用一些网格方法。如果它是Xceed,infragistics,其他供应商或内置的.NET-datagrid ......这是一个不同的问题。
答案 2 :(得分:1)
这是一个很好的WPF入门项目,它确实突出显示,即时加载日志文件和基本搜索。在过去,我发现仅为日志文件搜索维护全文索引太昂贵了。
http://code.google.com/p/videobrowser/source/browse/#svn/trunk/LogViewer
要显示日志消息,我使用的是WPF列表视图,它是完全虚拟的,可以满足您的所有要求。
答案 3 :(得分:0)
Eclipse UI Framework包含这样一个控制台,您可以使用文本搜索,语法突出显示等来改进。但是,我认为您需要的最小RCP插件对您的需求来说太多了。
但是,如果您已经基于Eclipse,那将是一个很好的解决方案。
答案 4 :(得分:0)
只需在.NET / C#
中使用RichTextBox即可答案 5 :(得分:0)
我建议使用.NET或Java中的简单网格
答案 6 :(得分:0)
ObjectListView(围绕.NET WinForms ListView的开源包装器)确实为开箱即用的搜索和复制添加了前缀(以及许多其他整洁的东西)。
您可以轻松使用RowFormatter为特定行颜色。
如果您使用虚拟列表版本,则可以毫无困难地实施过滤。我用它来过滤到100,000多个项目的列表,性能很好(在我的中档笔记本电脑上)。
必须专门实施全文搜索。有用于按键搜索事件的钩子。
所有这些都假设您有某种合理的LogEntry类型模型对象要显示。如果您只有一系列文字,那么您就可以自己:)
答案 7 :(得分:0)
我使用JFace TableViewer实现了类似的功能。 This article应该给你一个不错的起点。