JSP+Servlet培训班作业管理系统[23]–番外篇之Java Web日志

点此查看本系列文章目录、源代码、配套视频教程

1. 本章任务

系统日志是一个完整系统必要的模块,便于我们再出现问题时还原当时的场景,比如数据库操作如果发生异常,最好就要记录日志。

本篇使用java自带的java.util.logging类库类记录日志,特点是简单快捷。

2. 基础类库

首先理解四个类:

//Logger类是日志记录器
import java.util.logging.Logger;
//FileHandler类帮助Logger类处理文件
import java.util.logging.FileHandler;
//LogRecord类帮助Logger类处理日志中消息级别和内容
import java.util.logging.LogRecord;
//SimpleFormatter处理FileHandler保存格式
import java.util.logging.SimpleFormatter;

3. 自定义异常处理工具类

了解这4个类之后,我们写一个异常日志处理工具类:

/**
 * 日志工具类
 */
public class LogUtils {
	// 日志记录器
	public static Logger logger;
	static {// 初始化
		try {
			// 给日志记录器起名
			logger = Logger.getLogger("HomeworkSystem");
			// 日志相关的文件处理器
			FileHandler fileHandler;
			fileHandler = new FileHandler("d:\\log.txt");
			// 文件处理器相关的格式
			SimpleFormatter formatter = new SimpleFormatter();
			fileHandler.setFormatter(formatter);
			// 日志记录器使用fileHandler管理文件
			logger.addHandler(fileHandler);
		} catch (SecurityException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	// 记录一条日志
	public static void writeLog(Level level, String content) {
		// 设置日志级别,内容
		LogRecord logRecord = new LogRecord(level, content);
		// 记录一条日志
		logger.log(logRecord);
	}
}

该类将日志处理逻辑封装好了,只需要调用LogUtils.writeLog便可轻易记录日志。

4. 测试验证

登录成功后记录一条日志,修改LoginServlet。

      user = lc.checkLogin(userName, userPassword);
			if (user == null) {
				// 跳转到错误提示页面,并提示用户不存在
				tipInfo = "用户不存在";
				page = "tip.jsp";
			} else {
				// 登录成功,记录用户信息到Session,同时跳转管理后台页面
				// 记录日志
				LogUtils.writeLog(Level.INFO, "登录成功:"+user.getUserName());
				request.getSession().setAttribute("loginUser", user);
				page = "index.jsp";
				// 设置菜单
				String[][] loginMenus = Constants.roleMenuMap.get(user.getUserRole());
				request.getSession().setAttribute("loginMenus", loginMenus);
			}

好的,测试下,点击登录,在D盘下日志文件中发现:

在这里插入图片描述

OVER,这个日志系统非常简单,但是也容易扩展。可以分别使用多个日志类,分别对应不同的文件、级别。推荐的做法是使用两个,一个记录登录用户的行为,一个记录系统运行的异常。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员大阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值