Android Studio 0.8.1
java version "1.7.0_60"
您好,
我已经创建了一个jar文件并从我的Android应用程序中调用它。为了测试目的,我想在jar文件中放入一些日志,这些日志将显示在LogCat窗口中。
我决定使用Java的java.util.logging.Logger
课程。但是,当我使用No Filter
运行我的应用程序时,我看不到任何正在显示的日志消息。
import java.util.logging.ConsoleHandler;
import java.util.logging.SimpleFormatter;
import java.util.logging.Handler;
import java.util.logging.Logger;
import java.util.logging.Level;
public class RequestFactory extends WebServiceRequestFactory {
private static final Logger log = Logger.getLogger("RequestFactory");
public RequestFactory() {
ConsoleHandler consoleHandler = new ConsoleHandler();
log.addHandler(consoleHandler);
consoleHandler.setFormatter(new SimpleFormatter());
log.log(Level.FINE, "LOG: Initialized overloaded constructor");
System.out.println("Initialized overloaded constructor");
}
.....
我已将上述内容设置为在控制台中显示。但是,System.out.println
始终打印出来。但是,我不想使用System.out.println来显示日志消息。
如果可能的话,我想坚持使用java的日志记录类。
在LogCat窗口中,我可以看到System.out.println(...)
,但不能看到log.log(...)
窗口:
I/System.out﹕ Initialized overloaded constructor
我在这里做错了吗?
非常感谢任何建议
答案 0 :(得分:2)
ConsoleHandler的默认级别为INFO。 logger的默认级别是从其父级继承的。默认情况下,根记录器通常设置为INFO。使用默认设置不会报告FINE日志消息。将ConsoleHandler的日志级别更改为ALL,并将记录器的级别更改为FINE。
log.setLevel(Level.FINE);
consoleHandler.setLevel(Level.ALL);