哪种写日志语句的方式比较好
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,所以在生产系统中,不会处理。
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,所以在生产系统中,不会处理。