2012-10-18 32 views
4
private static final Logger LOGGER = LoggerFactory.getLogger(Updater.class); 

我使用SLF4JLogbackJava記錄聲明說,無法查找符號

當我嘗試登錄報表

LOGGER.info("{}:{}:{}", one, two, three) 

它說

cannot find symbol method info(java.lang.String,java.lang.String,java.lang.String,java.lang.String) 

請問有沒有什麼辦法我可以在一個info聲明中記錄兩個以上的變量嗎?

回答

9

您必須升級SLF4J到1.7,其中包括Logger.info(java.lang.String, java.lang.Object...)可變參數的方法。經過六年的討論,請參閱Bug 31 - Varargs for Logger methods

此前1.7,你必須,如果你使用的是周圍有Object[]參數超過兩個:

LOGGER.info("{}:{}:{}", new Object[] {one, two, three}) 

參見

+0

Maven倉庫似乎有'1.6.6'作爲最新http://mvnrepository.com/artifact/org.slf4j/slf4j-api – daydreamer

+1

@daydreamer:它在這裏:http://repo1.maven.org/在Maven2 /組織/ SLF4J/SLF4J的API/1.7.2 / –

1

你可能會使用舊版本的SLF4J。

在以前的版本中,你只能記錄多達這樣2個參數,但較新的版本可以採取any number of parameters

0

按記錄儀的JavaDoc,你可以使用以下任一項,

void info(String format, Object... arguments) 
    void info(String format, Object arg) 
    void info(String format, Object arg1, Object arg2)