【发布时间】:2018-01-03 14:21:28
【问题描述】:
这是一项学校作业:我必须构建一个自定义记录器类,该记录器类能够从我的项目中的任何位置进行记录。
除了java.util.logger,我不能使用其他任何东西。 我正在使用位于我项目的 /conf 文件夹中的属性文件。
我收到此错误:
属性的错误级别值:java.util.logging.FileHandler.level
无法为 java.util.logging.FileHandler 设置级别
我认为这就是为什么我的 debug() 方法不能在我的文件中打印“ddd”以及为什么我不能用我设置的这个字符串格式化文件:“[%1$tc] - [%2$s ] [%4$s] [%5$s] %n"。
我不知道我在 conf 文件或代码中可能犯了什么错误:导入是正确的,我在代码上没有错误/警告。
我知道我永远不应该使用绝对路径,但我认为这不是我的问题,解决此问题后路径将得到修复。
我的 /test 文件夹中的 try.log 输出:
03-Jan-2018 14:01:03 logger.classLogger 警告
警告:请注意
请 03-Jan-2018 14:01:03 logger.classLogger 错误
严重:错误
03-Jan-2018 14:01:03 logger.classLogger 信息
信息:信息
这是我的 .properties 文件:
.level=ALL
handlers = java.util.logging.FileHandler
java.util.logging.FileHandler.level = FINE
java.util.logging.FileHandler.append = true
java.util.logging.FileHandler.limit = 1000000
java.util.logging.FileHandler.count = 100
java.util.logging.FileHandler.pattern = %t/Log%u%g.log
java.util.logging.SimpleFormatter.format = "[%1$tc] - [%2$s] [%4$s] [%5$s] %n"
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
这是我的课:
public class classLogger {
Logger logger;
FileHandler fh;
SimpleFormatter sf;
public classLogger(String classname){
this.logger = Logger.getLogger(classname);
logger.setLevel(Level.ALL);
try {
String path = "D:\\myprojects\\logger\\conf\\logging.properties";
FileInputStream configFile = new FileInputStream(path);
LogManager.getLogManager().readConfiguration(configFile);
}
catch (IOException ex)
{
}
try {
String directory = "C:\\Documents and Settings\\E520user\\Desktop\\test";
String filename = "\\try.log";
this.fh = new FileHandler(directory+filename);
}
catch (IOException ex1) {
}
this.sf = new SimpleFormatter();
//set formatter
fh.setFormatter(sf);
//add handler
logger.addHandler(fh);
}
public void error(String msg){
logger.severe(msg);
}
public void warning(String msg){
logger.warning(msg);
}
public void info(String msg){
logger.info(msg);
}
public void debug(String msg){
logger.fine(msg);
}
public static void main(String[] args) {
IRSLogger log = new classLogger(classLogger.class.getName());
log.warning("attention please");
log.error("error");
log.debug("dddd");
log.info("info");
}
}
【问题讨论】:
-
什么是 IRSLogger?
标签: java logging properties java.util.logging