2011-11-01 82 views
0

请看看这个例子:如何禁用slf4j中记录的方法调用?

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

public class Test { 
    public static void main(String[] args) { 
     Logger log = LoggerFactory.getLogger(Test.class); 
     log.info("Hello World"); 
    } 
} 

程序产生下面的输出:

2011-11-01 13:06:05 Test main 
INFO: Hello World 

如何摆脱第一线的?如何设置记录器不显示方法调用?

slf4j在我的应用程序中使用jdk14。另外,我有两个处理程序,所以如果有办法禁用只为一个处理程序记录的方法调用,那将会很不错。

+0

配置日志格式。 –

回答

0

这两条线都是通过调用log.info生成的。看来记录器实现的默认格式会生成换行符。绝不“方法输入”本身产生任何输出。

要清楚:

2011-11-01 13:06:05 Test main 
INFO: Hello World1 
2011-11-01 13:06:05 Test main 
INFO: Hello World2 

哦,一般的方法来设置的Java的Util-记录你的JDK:如果您在

log.info("Hello World1"); 
log.info("Hello World2"); 

我希望这个日志输出两次这里描述:

http://download.oracle.com/javase/1.4.2/docs/guide/util/logging/overview.html

你将不得不看的出来, “格式化程序”部分并实现您自己的格式程序(AFAIK)。或者简单地在slf4j之后使用可用的日志实现,比如logback或log4j。

+0

我实现了我自己的格式化程序,感谢您的建议。无论如何,你建议从jdk切换到logback或log4j吗? –

+1

@Radek那么没有代码库的日志实现的价值是什么,与其他框架没有兼容性,只包含两个输出格式化器,它们甚至不允许指定通用输出格式,不提供接口分离和而且配置和初始化非常难看。我认为你会得到漂移。 –