一些日志将被机器消耗并永久保存。
其他日志仅用于调试和供人类使用。 在后一种情况下,您通常要确保您不会产生过多的日志,尤其是不会产生太宽的日志,因为一旦行长超过一定大小( 例如,此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");
}
上面的示例使用jOOλ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...
祝您登录愉快!
翻译自: https://www.javacodegeeks.com/2015/01/using-java-8-to-prevent-excessively-wide-logs.html