【发布时间】:2009-02-14 17:12:06
【问题描述】:
我正在尝试在我的应用程序中实现日志查看器。这个想法很简单,一个显示从其他类发送的一些消息的列表框,但我不知道最好的方法是什么。
我最初的想法是制作一个包含 List 或 Queue 的 Logger 类(singletone),然后我将添加一个 方法 AddMessage(string s) 或类似的东西。当这个方法被调用时,它会将消息添加到列表或队列中,并且它会触发一个 NewMessage 事件。这个事件是因为我认为每隔一段时间检查一次列表不是一个好主意。消息序列可能是 3 个连续的,然后是 40 分钟没有任何消息,然后是更多...
所以,在我的表单类中(或任何我想接收消息的地方)我会听这个事件来清空列表或队列(这是因为即使列表框(最终受体)尚未创建)。列表的想法是在没有人监听事件时保存消息。
另外,我设置了 300 条消息的限制……所以每次我要添加新消息时,最旧的消息都会被删除……像这样:
while(listbox.Items.Count > 300)
{
listbox.Items.RemoveAt(0);
}
你认为这是最好的方法吗?
感谢您的宝贵时间。 最好的问候。
编辑 1:我不想使用其他框架。
编辑 2:停止建议框架或其他应用程序。我想了解背后的逻辑,以及我所提议的是对还是错!
【问题讨论】:
-
你的限制是愚蠢的。 Log4net 成熟且无风险。如果您编写自己的实现,您将浪费大量时间来完善和修复错误。您可能会引入同步问题。
-
与其责备别人回答了你的实际问题,而不是责备你脑子里想的但表达不好的问题,你为什么不为浪费了试图帮助的人的时间而道歉你并重写你的问题以反映你真正想要的。
-
如果你想学习,这不是一个愚蠢的限制。我想我在这里是为了讨论从一个班级向另一个班级发送消息的最佳方法......现在,我认为我对我想要的内容不够明确
-
@tvanfosson,你是对的,对不起