欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

软件构造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);
    }
}

格式化效果:
软件构造Lab4实验总结—日志
综上,这只是一个简单的日志使用,对于日后如果需要更复杂的操作,再进行学习,补充。