【发布时间】:2016-06-22 19:38:20
【问题描述】:
我想扩展 java.util.logging.Logger 类。
我有以下代码。我在我们的应用程序中“强制出错”并且我创建的类没有被调用。
这是我故意生成的错误,但它没有出现在我编写的代码中:
//Generate error to test the logger
String[] myStringArray = new String[3];
String test;
test = myStringArray[5];
我也试过了,但即使我有相同的函数定义,它仍然没有出现在我的代码中:
logger.log(Level.FINE, "test my logger");
这是我的记录器扩展。是否有可能在“引发”未处理的异常时触发。
import java.util.logging.Level;
import java.util.logging.LogRecord;
public class MyLogger extends java.util.logging.Logger
{
public MyLogger(String name, String resourceBundleName)
{
super(name, resourceBundleName);
runMyLog();
}
public void log(Level level, String msg) {
runMyLog();
}
public void error(String msg)
{
super.log(Level.SEVERE, msg);
runMyLog();
}
public void log(LogRecord record)
{
super.log(Level.SEVERE, record.getMessage());
runMyLog();
}
public void severe(String msg) {
log(Level.SEVERE, msg);
runMyLog();
}
public void runMyLog(){
String str = "lll";
str="fdsafasdfdasfasd";
}
}
【问题讨论】:
-
您在哪里创建记录器类的实例?
-
它是为我们拥有的每个班级创建的。这是一个示例
codepublic class AuthModel implements Serializable { ... private static final Logger logger = Logger.getLogger(AuthModel.class.getName()); ... public String part1() throws IOException { logger.log(Level.FINE, "in part1"); //---我的扩展类没有被调用code -
您希望 getLogger() 如何知道您的子类以及它的返回和实例?
-
对不起,我按 Shift+Enter 但输出似乎没有生效!甚至尝试将代码包装在 mini-markdown 中,但它似乎不起作用..对不起,这个网站的新手
-
定义一个子类和获取该子类的实例是两件不同的事情。老实说,这是一个非常基本的 Java 和面向对象编程主题,根本不特定于日志记录。
标签: java exception-handling java.util.logging