软件构造Lab4实验总结—日志

在实验四完成之后,对完成过程中的问题进行一些记录便于日后查看。这篇文章主要介绍日志。我在本次实验中使用的是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);
    }
}

格式化效果:
在这里插入图片描述
综上,这只是一个简单的日志使用,对于日后如果需要更复杂的操作,再进行学习,补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值