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

简介: 本文目录1. 本章任务2. 基础类库3. 自定义异常处理工具类4. 测试验证

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盘下日志文件中发现:

image.png

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

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1天前
|
Java UED
认识Java Web 中forward 和 redirect 的区别
在Java Web开发中,页面跳转是构建用户界面和实现业务逻辑的重要组成部分。Forward(转发)和Redirect(重定向)是两种常见的跳转方式,它们分别具有不同的特点和适用场景。正确地选择和使用这两种跳转方式,有助于提高Web应用的性能、用户体验和代码可维护性。
7 0
|
1天前
|
网络协议 Java 数据安全/隐私保护
如何使用Java实现基于TCP/IP协议的即时通讯系统
TCP/IP协议是现代计算机网络通信中最常用的协议之一,而即时通讯系统则是当前互联网应用中非常普遍的一种场景。本文将介绍如何使用Java编程语言来实现基于TCP/IP协议的即时通讯系统,包括建立服务端和客户端、发送和接收消息等方面的详细步骤和示例。
|
3天前
|
消息中间件 运维 Java
java医院综合信息管理云HIS系统源码(前后端分离、SaaS模式、云计算)
云HIS系统分为两个大的系统:综合管理系统和业务系统 1、综合管理系统:由运营商、开发商和监管机构使用,用来进行运营管理、运维管理和综合监管。 2、业务系统:由基层医院使用,用来支撑医院各类业务运转。
20 1
|
3天前
|
Java 测试技术 数据库连接
基于Java Web技术的跨平台应用开发策略探讨
基于Java Web技术的跨平台应用开发策略探讨
|
3天前
|
设计模式 存储 前端开发
Java Web开发中MVC设计模式的实现与解析
Java Web开发中MVC设计模式的实现与解析
|
3天前
|
Java Maven 开发者
深入剖析Spring Boot在Java Web开发中的优势与应用
深入剖析Spring Boot在Java Web开发中的优势与应用
|
3天前
|
JSON 监控 Java
Java Web开发中的异常处理与日志记录最佳实践
Java Web开发中的异常处理与日志记录最佳实践
|
3天前
|
前端开发 JavaScript Java
利用Java Web技术实现实时通信系统的案例分析
利用Java Web技术实现实时通信系统的案例分析
|
3天前
|
缓存 前端开发 算法
Java Web性能优化:从响应时间到吞吐量
Java Web性能优化:从响应时间到吞吐量
|
3天前
|
缓存 前端开发 安全
前后端分离架构下Java Web开发的挑战与解决方案
前后端分离架构下Java Web开发的挑战与解决方案