org.slf4j.Logger中info()方法的使用详解
作者:Halimao
这篇文章主要介绍了org.slf4j.Logger中info()方法的使用详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
org.slf4j.Logger中info()方法
如果info()方法参数为以下类型
public void info(String format, Object argArray[]) { if(logger.isInfoEnabled()) { FormattingTuple ft = MessageFormatter.arrayFormat(format, argArray); logger.log(FQCN, Level.INFO, ft.getMessage(), ft.getThrowable()); } }
使用范例1
private final Logger log = LoggerFactory.getLogger(getClass()); log.info("backlog={}", new Object[]{backlog});//backlog为Java对象,可重写toString()方法来实现输出具体属性
输出如下:
backlog=Backlog [backlogId=null, employeeId=36, backlogHead=Test, backlogBody=时间:2016-10-1,地点:二楼四号会议室, createDate=Tue Nov 01 16:44:03 CST 2016, scheduledDate=Mon Feb 01 16:44:03 CST 2016]
使用范例2
private final Logger log = LoggerFactory.getLogger(getClass()); log.info("add Backlog -> employeeId={}, backlogHead={}, scheduledDate={}", new Object[]{ backlog.getEmployeeId(), backlog.getBacklogHead(), backlog.getScheduledDate()});
输出如下:
add Backlog -> employeeId=36, backlogHead=Test, scheduledDate=Mon Feb 01 16:44:03 CST 2016]
如果info()方法参数如下
public void info(String msg) { logger.log(FQCN, Level.INFO, msg, null); }
使用范例1
log.info("backlog=" + backlog);
输出结果:
backlog=Backlog [backlogId=null, employeeId=36, backlogHead=Test, backlogBody=时间:2016-10-1,地点:二楼四号会议室, createDate=Tue Nov 01 16:44:03 CST 2016, scheduledDate=Mon Feb 01 16:44:03 CST 2016]
如果info()方法参数如下
public void info(String format, Object arg) { if(logger.isInfoEnabled()) { FormattingTuple ft = MessageFormatter.format(format, arg); logger.log(FQCN, Level.INFO, ft.getMessage(), ft.getThrowable()); } }
使用范例1
log.info("delete backlog -> backlogId={}", backlogId);
输出如下:
delete backlog -> backlogId=69
总结:如果第二个参数是Object,则第一个String参数里要有”{}”对应,如果是Object[]数组,数组里有几个对象,前面的String参数就要有几个{}花括号对应。
log.info()传入多个参数的方法
不知道项目里用的是啥 ** 版本的 log4j
居然不能传入变长参数
logger.info(String.format("%s %s %s", username, feature, "1111"));
只好采用这种方式啦
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。