哪种写日志语句的方式比较好

Which is the better way to write log statements

JAVA 记录:

哪种写日志语句的方式比较好:
1. log.info("Value1 : {} Value2:{} Value3:{}",new Object[]{a,b,c};
或者
2. log.info(String.format("Value1 : %s Value2:%s Value3:%s",a,b,c));

没有更好或更坏的方法。两者都会给你相同的输出。但是我建议使用 slf4j(例如使用 logback 提供程序)。使用这样的配置,您可以这样登录:

log.info("{} {} {}", a, b, c);

喜欢第一个。

如果因为你的日志级别高于info而没有写入日志,那么你有调用log.info和构建临时参数数组的成本。但是记录器不会构造日志字符串。

在第二种情况下,您有调用加上日志字符串的格式,这可能更耗时。

更好的写法是将值传递给记录器。记录器的 info() 或 debug() 采用可变参数。假设您使用 log4j 或 slj4j 或 logback 作为库。如果还没有决定,认真考虑logback。

正确的写法如下。

log.info("Value1 :{} Value2: {} Value3: {}", a, b, c);

您无需显式创建字符串对象。这是由日志记录框架在内部处理的。

如果只是针对logging对象有特定的处理,检查isDebugEnabled()后写logging,所以在生产系统中,不会处理。