软件构造心得体会:java日志管理

javalogging

日志管理使我们编程中非常重要的一部分,好的日志管理可以更好地帮助我们管理维护程序,发现程序中的错误有着重要的作用。
我们学习了java logging 的各种操作,可以经过异常处理、错误处理、断言处理的程序增加日志功能
当然,除此之外,还有log4j等其他日志管理,这里我们不做具体解释,大致思想一致。

logging文件输出

日志的操作等级可以选这些:DEBUG < INFO < WARN < ERROR < FATAL,通过自己的判断,将不同的日志信息,通常INFO是普通信息,WARN是某种异常,ERROR是比较重要的运行错误
作为不同的等级打印出来在使用时我们可以使用下列命令配置语言环境。

Locale.setDefault

同时,对于每一个日志,我们需要将他发送到一个位置,或者是某个文件,或者是控制台。我们可以通过以下指令将其发送到某个文件
Java中Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。
所以我们可以如下将日志信息输出到某个文件

FileHandler fileHandler = new FileHandler("src/log/plane.txt", true);
			fileHandler.setFormatter(new myFormatter());
			planeLogger.addHandler(fileHandler);

如果我们想要确定输入消息操作的等级,可以在jvm启动虚拟机时设置

-Djava.util.logging.config.file

上述代码中myformatter是我们人为规定的某种格式,便于管理人员理解信息。

输出formatter

我们都知道,日志管理是面向使用者的,所以日志提供的信息需要我们变成某种易于理解的格式。
我们首先,通常这个日志信息包含日志时间,日志等级,日志调用位置,日志的其他位置。例如下列代码

DateTimeFormatter x= DateTimeFormatter.ofPattern("MMM dd yyyy HH:mm:ss a");
		return LocalDateTime.now().format(x)+"-"+record.getSourceClassName()+"-"+record.getSourceMethodName()+"-"+record.getLevel()+"-"+record.getMessage()+"\n";

其中先通过DateLocalTime获得了现在的时间,并按想要的格式打印出来,后面的getSourceClassName()等函数是logging自带的定位日志位置的函数。

实际操作

因为我们定义一个变量logger来管理各种日志操作
在这里插入图片描述
这个类中只有一个函数和一个logger类变量
在这里插入图片描述
这个类管理一个logger类变量,在每次日志操作时将其进行一系列配置管理,最后将其返回
实际运行时,例如我们捕获到一个异常,我们通过调用这个函数得到一个logger并进行日志管理

try {
	        checkplanename(planename);
	        }catch(planeNameFormatException e){
	        System.out.println(e);
	        logger.planeLogger().warning(e.toString());
	         continue;
	   	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值