Logback 更好的替代方法

还有一种基于消息格式的方便的替代方法。假设entry是一个object,你可以编写:Object entry = new SomeObject(); logger.debug("The entry is {}.", entry);在评估是否作记录后,仅当需要作记录时,logger才会格式化消息,用entry的字符串值替换"{}"。换句话说,当记录语句被禁用时,这种方法不会产生参数构造所带来的性能消耗。

下面的 2 个语句将会输出同样的日志内容,在 disabled logging 状态启用的情况下,第二条语句将会至少比第一条语句输出快 30%。logger.debug("The new entry is "+entry+"."); logger.debug("The new entry is {}.", entry);如果有 2 个参数,你可以使用下面的方式进行书写:logger.debug("The new entry is {}. It replaces {}.", entry, oldEntry);如果你有 3 个或者更多的参数需要输出,你可以使用 Object[] 数组的方式定义变量,然后输出。

例如你可以使用下面的方式输出日志:Object[] paramArray = {newVal, below, above}; logger.debug("Value {} was inserted between {} and {}.", paramArray);SLF4J 1.7.7 版本后的说明

从 SLF4J 1.7 开始,参数必须在 Object[] 中使用。

请参考下面帖子中的内容:[url]http://www.ossez.com/thread-29153-1-1.html[/url]

REF:[url]http://cwiki.ossez.com/pages/viewpage.action?pageId=4719684[/url]