如果我有一个将日志文件写入文件系统的应用程序,然后我希望能够将这些日志转储到 RDBMS 以便能够更轻松地查询特定项目(例如,我想查询与事务 ID X 相关的所有日志,而不仅仅是查询日志级别为 INFO 或自某个日期以来的所有内容)。
什么是格式化日志消息以便能够轻松地将其放入 RDBMS 以允许将来更改我实际记录的内容(添加更多内容)的可靠方法?
如果我有一个将日志文件写入文件系统的应用程序,然后我希望能够将这些日志转储到 RDBMS 以便能够更轻松地查询特定项目(例如,我想查询与事务 ID X 相关的所有日志,而不仅仅是查询日志级别为 INFO 或自某个日期以来的所有内容)。
什么是格式化日志消息以便能够轻松地将其放入 RDBMS 以允许将来更改我实际记录的内容(添加更多内容)的可靠方法?
将日志条目的属性编码为名称-值对。您需要选择值部分的分隔符;也就是说,它必须是不会出现在值本身中的东西。
日志条目的一些属性,如果您还没有考虑到问题的那部分:
还要考虑:
正是该自由文本属性将与您的分隔符选择竞争。
一个玩具示例日志条目,使用双括号作为分隔符:
timemstamp=[[24-Apr-2012 15:48:28.749]] severity=[[error]] location=[[Foo.java (45)]] transaction=[[48241]] free=[[Cannot open file 'zqx3.txt']]
您的问题未使用实现语言标记。在 Java 领域,log4j是一个流行的日志框架。我相信.NET 有合适的端口或类似工作。
另请参阅简单的日志文件格式。