OracleLoadstar/SCE-Universe_Java_Edition
用户指南

日志系统

SCE-Universe Java Edition 项目中的日志系统采用简单直接的方式,主要通过 Java 标准输出流 (System.out.println) 和标准错误流 (System.err.println) 以及异常堆栈跟踪 (e.printStackTrace()) 来记录应用程序的运行时信息、调试消息和错误。

概述

该项目的日志记录机制没有使用外部日志框架(如 Logback 或 Log4j),而是依赖于 Java 内置的控制台输出功能。这种方法适用于小型项目或调试阶段,能快速地将信息和错误直接输出到运行应用程序的控制台。主要用途包括:

  • 调试信息:输出变量状态、执行路径等,帮助开发者理解程序行为。
  • 错误报告:捕获异常时打印堆栈跟踪,提供错误发生的详细上下文。
  • 状态通知:在关键操作(如模块加载、配置读取)时提供简要的进度或成功消息。

架构

日志系统架构非常基础,它直接将日志消息从应用程序的各个组件路由到 Java 虚拟机管理的标准输出和标准错误流。

加载图表中...

架构说明

如上图所示,不同的应用程序组件根据消息类型和重要性,将日志输出到 System.outSystem.err。所有这些输出最终都会定向到运行 Java 程序的控制台或终端。

  • System.out:主要用于输出常规信息、UI 消息或调试数据。
  • System.err:主要用于输出错误信息、警告以及异常堆栈跟踪。

这种直接的输出方式不提供日志级别过滤、格式化配置或文件写入等高级功能。

核心日志流

核心日志流非常简单,即消息从代码中直接写入到标准输出或标准错误。

加载图表中...

流说明

  1. 当应用程序中的任何组件需要记录信息时,它会直接调用 System.out.println()System.err.println()
  2. 在捕获到异常时,通常会调用异常对象的 printStackTrace() 方法,这会将完整的异常堆栈跟踪输出到 System.err
  3. System.outSystem.err 的输出最终都会显示在程序运行的控制台界面上。

使用示例

项目中广泛使用了 System.err.println 用于错误和警告信息,System.out.println 用于普通信息,以及 e.printStackTrace() 处理异常。

错误信息输出

App.java 的启动逻辑中,当路由启动时会输出一条错误信息:

java
System.err.println("[Main] 准备启动路由...");

Source: src/cn/oraclestar/sce/App/App.java

modlist.java 中,模块加载器也会输出扫描目录和插件信息:

java
System.err.println("[ModLoader] 正在扫描目录: " + mod_folder.getAbsolutePath()); // ... System.err.println("[ModLoader] Mod信息 "+info.name()+" "+info.author()+" "+info.version());

Source: src/cn/oraclestar/sce/system/modloader/modlist.java

异常堆栈跟踪

当代码块中发生异常时,通常会使用 e.printStackTrace() 来打印详细的错误信息,例如在 App.java 初始化页面时:

java
} catch(Exception e){ e.printStackTrace(); }

Source: src/cn/oraclestar/sce/App/App.java

普通信息输出

UI_core.java 中,System.out.println 被用于在用户界面中打印普通文本和换行:

java
1fmt.print(fmt.fg(color),"{}",textContent); 2if(isNewLine){ 3 System.out.println(); 4}

Source: src/cn/oraclestar/sce/system/UI/UI_core.java

配置选项

该日志系统没有提供外部配置选项。日志行为由硬编码在源代码中的 System.out.printlnSystem.err.printlne.printStackTrace() 调用决定。

API 参考

该日志系统没有对外暴露特定的 API 接口,其功能通过直接调用 Java 标准库中的以下方法实现:

System.out.println(String x)

在标准输出流中打印字符串,并终止当前行。

Parameters:

  • x (String): 要打印的字符串。

Returns: 无。

Throws: 无。

System.err.println(String x)

在标准错误流中打印字符串,并终止当前行。

Parameters:

  • x (String): 要打印的字符串。

Returns: 无。

Throws: 无。

Throwable.printStackTrace()

将此 Throwable 及其回溯信息打印到标准错误流。

Parameters: 无。

Returns: 无。

Throws: 无。

相关链接

Sources

(1 files)

On this page