我正在处理主要业务对象的结构日志api。
public class Log{
private int identifier;
private Exception exception;
private Severity severity;
private Date date;
private String message;
}
严重程度是Enum
例外是java基本类Exception。
我想在数据库中存储我的日志,但我不确定是否在数据库中存储了异常的序列化。或者,如果我只应存储stackTrace。
不会,在一个可能会产生大量线路的日志系统中,这会高速填满我的存储空间吗?
如果我还希望在数据库脱机时将其存储在csv填充中 序列化可以产生","哪个可能会搞乱我的csv列?
编辑: 正如我在评论中所说,这个项目是一个学习的个人项目,我想在我的其他个人应用程序中使用它。但它应该是开源的,所以我无法预测每个人使用它的存储空间大小不会超过他们将要使用的数据库系统。
答案 0 :(得分:0)
就数据存储大小而言,请尝试查看默认情况下支持有线老虎存储引擎的Mongo 3.2等数据库选项。这提供了高达90%的默认压缩。这意味着10GB日志存储将以压缩形式存储在1-1.5 GB的空间内。为此,您甚至不需要对您的申请进行任何更改。
答案 1 :(得分:0)
Log4J是最受欢迎的日志记录系统之一。它能够记录到几个存储库,包括数据库。
关于性能,最好使用一个使用单独线程而不是主线程的日志系统来编写日志,就像log4j那样,对性能的影响最小。