使用Java 8防止日志过大

发布于:2021-01-11 11:25:48

0

115

0

Java 8 Java 日志

通过此最新的Java 8教程,使字符串操作成为您的朋友。Lukas Eder向我们展示了使用truncate方法如何帮助防止编辑器中的错误并使开发人员的工作更加轻松。

一些日志将 被机器消耗并永久保存。

其他日志仅用于调试和供人类使用。在后一种情况下,您通常要确保您不会产生过多的日志,尤其是不会产生太宽的日志,因为一旦行长超过一定大小,许多编辑器和其他工具就会出现问题(例如,此Eclipse bug)。

字符串操作曾经是Java的主要麻烦,它具有许多繁琐的编写循环和分支等。Java8不再具有此功能!

下面的truncate方法将字符串中的所有行截断为特定长度:

public String truncate(String string) {     return truncate(string, 80); }    public String truncate(String string, int length) {     return Seq.of(string.split("n"))               .map(s -> StringUtils.abbreviate(s, 400))               .join("n"); }

上面的示例使用jOOQ 0.9.4和Apache Commons Lang,但是您可以使用香草Java 8实现相同的效果:

public String truncate(String string) {     return truncate(string, 80); }    public String truncate(String string, int length) {     return Stream.of(string.split("n"))                  .map(s -> s.substring(0, Math.min(s.length(), length)))                  .collect(Collectors.joining("n")); }

上面将日志截断为长度10时,上面的程序将产生:

输入值

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

输出量

Lorem ipsum dolor... incididunt ut lab... nostrud exercitat... Duis aute irure d... fugiat nulla pari... culpa qui officia...

祝您登录愉快!