【发布时间】:2014-05-25 08:32:14
【问题描述】:
我用静态方法写了一个单独的类 MyLogger
static public void setup(String className, Exception e, Level level) {
System.out.println("className = " + className);
Logger logger = Logger.getLogger(className);
logger.setLevel(Level.INFO);
try {
fileTxt = new FileHandler("Logging.%u.%g.txt",1024 * 1024, 10, true );
// create a TXT formatter
formatterTxt = new SimpleFormatter();
fileTxt.setFormatter(formatterTxt);
logger.addHandler(fileTxt);
logger.log(level, e.toString(), e);
} catch (IOException | SecurityException ex) {
System.out.println("SecurityException ");
Logger logger2=Logger.getLogger(MyLogger.class.getName());
logger2.addHandler(new ConsoleHandler());
logger2.log(Level.SEVERE, null, ex);
}
}
这个静态方法接收一个字符串 className,我将它作为参数放入 Logger.getLogger()。
在另一个类中,我调用 MyLogger.setup(CommonFrame.class.getName(), e, Level.SEVERE)。 一切正常。但问题是在文件中我得到“2014 年 5 月 25 日下午 2:05:30 javagui.MyLogger setup”,我认为它应该是这样的“2014 年 5 月 25 日下午 2:05:30 javagui.CommonFrame " 因为我将该名称分配给了记录器。 我对吗?如果是,我该如何解决?
【问题讨论】: