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"));

隻好采用這種方式啦

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: