- 日志简介
属于包 java.util.logging。使用时要import
可以输出到控制台和文件,需要自己配置。文件格式也可以自己设置 - 日志级别
有7个级别。
public static double division(int value1, int value2) {
double result = 0;
try {
result = value1 / value2;
} catch(ArithmeticException e) {
logger.severe("[severe]除数不能为0.");
logger.warning("[warning]除数不能为0.");
logger.info("[info]除数不能为0.");
logger.config("[config]除数不能为0.");
logger.fine("[fine]除数不能为0.");
logger.finer("[finer]除数不能为0.");
logger.finest("[finest]除数不能为0.");
e.printStackTrace();
}
return result;
}
- log的常用方法:
Logger.getLogger(name):构建一个日志实例,名字为name
getName():得到日志的名字 - 一个自定义log的实例。输出到文件,不输出到控制台
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.logging.FileHandler;
import java.util.logging.Formatter;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
public class FileLog {
private final Logger mylogger;
private final FileHandler f;
public FileLog(String name ,FileHandler fl) {
mylogger = Logger.getLogger(name);
this.mylogger.setLevel(Level.ALL);
this.mylogger.setUseParentHandlers(false);
this.f = fl;
}
public void addmseeagelog(String message) {
this.mylogger.setLevel(Level.INFO);
f.setFormatter(new myFormat());
this.mylogger.addHandler(f);
this.mylogger.info(message);
}
public void addwarninglog(String message) {
this.mylogger.setLevel(Level.WARNING);
f.setFormatter(new myFormat());
this.mylogger.addHandler(f);
this.mylogger.warning(message);
}
public String logname() {
return this.mylogger.getName();
}
}
class myFormat extends Formatter{
@Override
public String format(LogRecord record){
ZonedDateTime zdf =ZonedDateTime.now();
String sDate = zdf.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
return "["+ sDate + "]: "+record.getMessage()+"\n"+record.getLoggerName()+"\n";
}
}