日志结构化处理:PO对象toString日志转JSON工具
- 1. 解决的问题
- 2. 下载地址
在Java项目中,PO(Plain Old Java Object)对象遍布各个角落,且常常伴随着大量的日志记录需求。传统的做法是通过toString方法直接打印这些对象,然而这种方式输出的日志信息往往不够结构化,给日志排查带来了诸多不便。为了提升日志的可读性和可维护性,我们引入了一款高效工具,该工具能够将项目中约90%的日常PO对象日志自动转换为结构化的JSON格式数据。这一转变极大地简化了系统运维人员的工作,使他们能够更迅速、更准确地定位和解决问题。
1. 解决的问题
-
示例 1:简单对象
输入:
User(id=1, name="Alice", age=25)
输出:
{"User": {"id": 1, "name": "Alice", "age": 25}}
-
示例 2:嵌套对象
输入:
Order(id=1001, items=[Item(id=2001, name="Book")])
输出:
{"Order": {"id": 1001, "items": [{"Item": {"id": 2001, "name": "Book"}}]}}
-
示例 3:复杂 Map
输入:
Config(settings={key1="value1", key2=[1, 2, 3]})
输出:
{"Config": {"settings": {"key1": "value1", "key2": [1, 2, 3]}}}
-
示例4:自定义复杂对象
输入:
User(username=张三, password=123456, students=[Student(name=李四, age=18, score=0.0, courses=null), Student(name=王五, age=20, score=0.0, courses=[数学, 英语, 物理])], map={aa=123, bb=456, cc=你好})
输出:
{ "User": { "username": "张三", "password": 123456, "students": [ { "Student": { "name": "李四", "age": 18, "score": 0.0, "courses": null } }, { "Student": { "name": "王五", "age": 20, "score": 0.0, "courses": [ "数学", "英语", "物理" ] } } ], "map": { "aa": 123, "bb": 456, "cc": "你好" } } }
2. 下载地址
资源工具已绑定在该文章前言,点击下载即可使用