c# - 格式化日志的好方法是什么?

标签 c# parsing logging

我正在设计一个应用程序,它需要记录我从 Telnet 连接收到的所有传入消息。文本大部分是纯文本,但可以包含提供文本颜色和格式(16 种颜色、粗体、下划线等)的 ANSI 标签。

我想格式化我的日志,以便稍后存储带有格式、日期/时间和可能的其他元数据的文本。我首先想到的都是 XML,但这可能会影响我以后编写快速搜索工具的能力。我目前的想法是日期/时间 + 文本在一个文件中,元数据存储在另一个 XML 文件中,由行号引用。

这是一个好的解决方案吗?另外,我应该在哪里以及如何存储格式化命令?原始的 ANSI 标签会破坏原样,但将它们放在两个不同的文件中可能会很尴尬。

附加:感谢到目前为止的一些回答,但我应该提到,大多数情况下,消息将是人与人之间的通信,而不是系统消息。一种更原始​​的 IRC。由我的用户稍后决定(通过添加元数据)哪些消息是重要的。这是过滤或编辑日志可能源自的记录日志上的原始数据。

最佳答案

我的第一个建议是使用像 log4net 这样的嵌入式日志记录工具,这将使格式化更加自动化。

如果你打算走两个文件的路线(我同意 Craig 的观点,数据库可能是更好的选择,)你可以通过拥有一个尽可能稀疏的文件来避免很多心痛使其用于以后的快速搜索,并将所有信息(元数据和数据)保存在一个地方,而不是创建仅元数据的格式。

关于c# - 格式化日志的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50704/

相关文章:

c# - 来自 DataTable 枚举的 LINQ 未产生任何结果

python - 使用python将数据从xml文件填充到sqlite数据库

javascript - 在函数之外使用 Angular var

c++ - C++ 中整数的稳健解析

java - log4j 2 : log file being created, 但未写入

c# - 记录 Entity Framework 存储过程调用和参数

c# - 泛型参数的属性有什么用?

c# - where 子句中的扩展方法

c# - 在树结构C#中查找类型T的所有对象

mysql - 如何在 MySQL 中启用、使用和分析慢查询日志?