我过去使用过log4j(v.1),很高兴知道对项目进行了重大的重构,产生了log4j 2,它解决了困扰版本1的问题。
我想知道我是否可以使用log4j 2来写入数据文件,而不仅仅是日志文件。
我即将开发的应用程序需要能够接收来自不同来源的许多事件,并将它们写入数据文件或数据库(我还没决定哪个)。
尝试写入事件时,接收事件的线程不能被I / O阻塞,因此基于LMAX Disruptor库的log4j2的异步记录器肯定适合这种情况。
此外,我的应用程序必须能够从磁盘上没有足够的空间恢复。或者'无法访问数据库'条件,分别写入数据文件或数据库表时。换句话说,当应用程序磁盘空间不足或数据库暂时不可用时,我的应用程序需要将事件存储在内存中并等待存储变为可用,当存储时,将所有等待事件写入磁盘或数据库。
你认为我能用log4j做到这一点吗?
非常感谢你的帮助。
此致 Nuno Guerreiro
答案 0 :(得分:1)
是
我知道在类似场景中至少有一个生产实现,其中聚集的事件以高吞吐量写入磁盘。
写入系统卷以外的卷,以最大程度地降低因磁盘空间溢出而导致系统崩溃的可能性。
前期容量规划可以帮助确保h / w配置具有足够的资源,以在合理的时间段内处理预计的平均负载和突发。
不要让系统耗尽磁盘空间:)。跟踪磁盘使用情况,并在极端情况下主动删除旧数据。