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


如有问题请扫码联系我
在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页