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

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
4月前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
497 0
|
4月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
487 1
|
5月前
|
前端开发 Java 数据库
Java 项目实战从入门到精通 :Java Web 在线商城项目开发指南
本文介绍了一个基于Java Web的在线商城项目,涵盖技术方案与应用实例。项目采用Spring、Spring MVC和MyBatis框架,结合MySQL数据库,实现商品展示、购物车、用户注册登录等核心功能。通过Spring Boot快速搭建项目结构,使用JPA进行数据持久化,并通过Thymeleaf模板展示页面。项目结构清晰,适合Java Web初学者学习与拓展。
435 1
|
10月前
|
SQL druid Oracle
【YashanDB知识库】yasdb jdbc驱动集成druid连接池,业务(java)日志中有token IDENTIFIER start异常
客户Java日志中出现异常,影响Druid的merge SQL功能(将SQL字面量替换为绑定变量以统计性能),但不影响正常业务流程。原因是Druid在merge SQL时传入null作为dbType,导致无法解析递归查询中的`start`关键字。
|
11月前
|
XML JSON Java
Java中Log级别和解析
日志级别定义了日志信息的重要程度,从低到高依次为:TRACE(详细调试)、DEBUG(开发调试)、INFO(一般信息)、WARN(潜在问题)、ERROR(错误信息)和FATAL(严重错误)。开发人员可根据需要设置不同的日志级别,以控制日志输出量,避免影响性能或干扰问题排查。日志框架如Log4j 2由Logger、Appender和Layout组成,通过配置文件指定日志级别、输出目标和格式。
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
2885 8
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
人工智能 Oracle Java
解决 Java 打印日志吞异常堆栈的问题
前几天有同学找我查一个空指针问题,Java 打印日志时,异常堆栈信息被吞了,导致定位不到出问题的地方。
335 2
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
320 0
|
Java Maven Android开发
解锁Web开发新技能:从零开始的Struts 2之旅——让你的Java编程之路更加宽广,首个应用实例带你飞!
【8月更文挑战第31天】对于初学者,掌握 Struts 2 框架不仅能提升 Web 开发能力,还能深入了解 MVC 架构。Struts 2 是一个基于 Servlet 的 Java 框架,提供表单验证、文件上传、国际化等功能,便于快速构建易维护的 Web 应用。本文通过示例演示如何从零开始搭建环境并创建一个简单的 Struts 2 项目,包括配置 `struts.xml`、编写 Action 类及视图文件,并配置 web.xml。通过这些步骤,你将学会基本的开发流程,为进一步学习高级功能打下基础。
228 0
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
495 1