软件构造Lab4实验总结—日志
程序员文章站
2024-02-09 18:14:10
...
在实验四完成之后,对完成过程中的问题进行一些记录便于日后查看。这篇文章主要介绍日志。我在本次实验中使用的是Java自带的日志类。
1、概念:日志的作用在于记录软件执行过程中出现的问题,便于日后查找修改
2、日志级别:
各级别按照降序排列如下
SEVERE
WARNING
INFO
CONFIG
FINE
FINER
FINEST
可以在日志中设置显示的最低级别,该级别一下过滤
3、初始化一个logger需要的参数只有日志的名字。而对于初始化相同名字的logger,不会新建,而是默认共同使用一个。
4、对于日志的显示,可以通过新建handler,确定往控制台或文件输出(handler使用完记得及时关闭)
5、简单的使用教程
Logger logger = Logger.getLogger("flightLogger");
MyFormatter formatter = new MyFormatter();
FileHandler handler = new FileHandler("src/FlightScheduleApp/flightLogger.log");
logger.setUseParentHandlers(false);
handler.setFormatter(formatter);
logger.addHandler(handler);
其中setUseParentHandlers方法传参为false时,日志只按照指定handler输出,不会输出在控制台上。
6、对于LogRecord的格式化
如果直接使用Java提供的格式,对于后期的日志查找造成了一定的困扰,因而将日志格式化为自己使用方便的格式就显得十分重要了
public class MyFormatter extends Formatter {
private static final String COMMON_DATE=" yyyy-MM-dd HH:mm";
DateFormat df = new SimpleDateFormat(COMMON_DATE);
@Override
public String format(LogRecord record) {
StringBuilder builder = new StringBuilder(1000);
builder.append(df.format(new Date(record.getMillis()))).append("\n");
builder.append("[").append(record.getThrown()).append("]\n");
builder.append("[").append(record.getSourceClassName()).append(".");
builder.append(record.getSourceMethodName()).append("]\n");
builder.append("[").append(record.getLevel()).append("]\n");
builder.append(formatMessage(record));
builder.append("\n");
return builder.toString();
}
public String getHead(Handler h) {
return super.getHead(h);
}
public String getTail(Handler h) {
return super.getTail(h);
}
}
格式化效果:
综上,这只是一个简单的日志使用,对于日后如果需要更复杂的操作,再进行学习,补充。
上一篇: 关于java动态代理的一些个人理解
下一篇: Go程序设计语言读书笔记-第六章