'logger.info(message);'我的代码中的行创建了这个输出:
2013年12月17日下午12:54:50 greenhouse.GreenhouseControls $ ControllerException
我想使用PrintWriter将该行打印到文本文件中。这就是我到目前为止所做的:
public ControllerException(String message, int errorcode) {
super(message);
this.errorcode=errorcode;
Logger logger = Logger.getLogger(ControllerException.class.getName());
logger.info(message);
String fileName = "error.log";
try {
PrintWriter outputStream = new PrintWriter(fileName);
outputStream.println("Time: " + ????); // Not sure what to put here..
outputStream.println("Reason: " + message);
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
我可以在打印行声明中包含哪些内容来代替问号来实现此目的?
答案 0 :(得分:1)
我会这样做:
public ControllerException(final String message, int errorcode) {
super(message);
this.errorcode=errorcode;
Logger logger = Logger.getLogger(ControllerException.class.getName());
logger.setFilter(new Filter() {
@Override
public boolean isLoggable(LogRecord record) {
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd',' yyyy HH:mm:ss a");
String fileName = "error.log";
try {
PrintWriter outputStream = new PrintWriter(fileName);
outputStream.println("Time: " + sdf.format(new Date(record.getMillis())));
outputStream.println("Reason: " + message);
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return true;
}
});
logger.info(message);
}
这样您就可以获得日志记录的确切日期。