我正在编写.NET核心应用程序,并希望使用.NET Core扩展中可用的结构化日志以更结构化的方式编写日志。我想把我的日志保存在RavenDB中,我想知道是否有这样的用例的最佳实践?我对文档DB很陌生,我无法像在SQL关系数据库中那样预测将来的事情。我的主要考虑是:
发布于 2020-03-25 19:51:05
我认为每个日志条目都应该进入一个单独的文档,原因如下:
我认为结构化数据应该采用经典的JSON属性形式。例如:
{
"State": {
"Service": "International Weather Forecast Service",
"{OriginalFormat}": "Weather forecast called using {Service}"
}
}GitHub上有一个遵循分组方法RavenDB.StructuredLog的项目。但我认为这不是正确的,所以我创建了我的:Logging.Raven
发布于 2019-09-03 14:53:45
您可以做的是,使用类似于此的模型:
public class LogMessage<T>
{
public string Message;
public string Exception;
public T Value;
}将每个日志消息保存为集合中的单独文档。如果将来需要进行更改,您可以更改此模型,并使用修补程序功能来修补旧文档。
此外,我认为文档Expiration功能将有助于删除旧日志文档。https://ravendb.net/docs/article-page/4.2/Csharp/server/extensions/expiration
https://stackoverflow.com/questions/57724772
复制相似问题