为特定程序包设置Java Logger [英] Setting up java Logger for a specific package
本文介绍了为特定程序包设置Java Logger的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有人可以向我解释一下,如何从一个具体的包中为各种类设置Java Logger吗?
could anybody explain to me, how to set up java Logger for various classes from a concrete package ?
例如: 如果我得到了它并进行设置
for example: if I get this one and set it up
Logger logger = Logger.getLogger("com.google.api.client.*");
logger.setLevel(Level.CONFIG);
logger.addHandler(new Handler() {
@Override
public void close() throws SecurityException {
}
@Override
public void flush() {
}
@Override
public void publish(LogRecord record) {
// default ConsoleHandler will take care of >= INFO
if (record.getLevel().intValue() < Level.INFO.intValue()) {
System.out.println(record.getMessage());
}
}
});
有这样的条件
Logger.getLogger(HttpTransport.class.getName()).isLoggable(Level.CONFIG);
在库中,HttpTransport
是com.google.api.client.*
的一部分
但是问题是,
Logger.getLogger(HttpTransport.class.getName()).isLoggable(Level.CONFIG);
是false
...就像是否获得了其他记录器一样
is false
... like if a different logger was obtained
我还应该如何为同一包中的所有类设置它?是否有条件让记录器使用HttpTransport之类的具体类.
How else should I set it for all classes from the same package? if there are conditions for loggers for concrete classes like HttpTransport.
推荐答案
您不希望包字符串中带有.*. 更改
You do not want the .* in your package string. Change
Logger logger = Logger.getLogger("com.google.api.client.*");
到
Logger logger = Logger.getLogger("com.google.api.client");
这篇关于为特定程序包设置Java Logger的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文