BoxLogger 教程
本教程提供了 BoxLogger
类的概述,该类是 lightweight-component/aj-util
库的一部分。BoxLogger
类为创建带格式和对齐的盒状日志消息提供了实用工具。
简介
BoxLogger
类包含用于创建视觉格式化的盒状日志消息的静态方法,支持 ANSI 颜色和正确处理宽字符(如 CJK)。
主要特性
- 盒状日志消息格式化
- ANSI 颜色支持
- 带省略号的字符串截断
- 显示宽度计算(处理宽字符)
- 字符串重复实用工具
常量
ANSI_GREEN
- ANSI 绿色代码ANSI_YELLOW
- ANSI 黄色代码ANSI_BLUE
- ANSI 蓝色代码ANSI_RED
- ANSI 红色代码ANSI_RESET
- ANSI 重置代码NONE
- 常量 "none"TRACE_KEY
- 默认跟踪键名BIZ_ACTION
- 默认业务操作键名
方法
1. 盒状格式化
boxLine(char left, char fill, char right, String title)
- 创建盒状边框线boxContent(String key, String value)
- 在盒内创建内容行
2. 字符串实用工具
repeat(char c, int n)
- 重复字符 n 次truncate(String s, int maxDisplayLen)
- 带省略号的字符串截断getDisplayWidth(String s)
- 计算显示宽度(宽字符=2)isWideChar(char ch)
- 检查字符是否为宽字符(CJK)
使用示例
创建盒状日志
System.out.println(BoxLogger.boxLine('┌', '─', '┐', " 日志开始 "));
System.out.println(BoxLogger.boxContent("用户: ", "张三"));
System.out.println(BoxLogger.boxLine('└', '─', '┘', " 日志结束 "));
ANSI 颜色
System.out.println(BoxLogger.ANSI_RED + "错误!" + BoxLogger.ANSI_RESET);
字符串实用工具
String repeated = BoxLogger.repeat('-', 10); // "----------"
String truncated = BoxLogger.truncate("这是一个长字符串", 10); // "这是一个..."
int width = BoxLogger.getDisplayWidth("中文"); // 4
实现说明
- 盒宽度固定为 97 个字符
- 正确处理 CJK 和全角字符
- 包含基本的 ANSI 颜色支持
- 提供带省略号的干净截断
结论
BoxLogger
类提供了有用的实用工具,用于创建视觉格式化的日志消息,特别适用于 CLI 应用程序或调试输出。