📄🦌🙌🐟🏖️
日志记录
Where there is a where there is a way
随机文章
按住 Shift 横向滚动
热门文章
按住 Shift 横向滚动
fastjson2

fastjson2

FASTJSON 2是阿里巴巴推出的高性能Java JSON库,相比FASTJSON 1性能大幅提升,并解决了autoType的安全性问题。它支持JDK 11/17、Record、GraalVM Native-Image,提供完善的JSONPath(兼容SQL:2016)和JSON Schema,新增二进制格式JSONB,同时支持Kotlin和Android 8+。基础使用包括:通过Maven添加依赖,使用JSONObject和JSONArray创建、取值、遍历及增删改操作;支持JSON对象/数组与字符串、JavaBean、Map、List的互转(包括字节数组转换),并提供格式化输出功能。SpringBoot集成可参考官方文档。

Log4j2

Log4j2

Log4j2是log4j1.x的升级版,具有异常处理、性能提升、自动重载配置和无垃圾机制等优点。配置采用XML、JSON等格式(不再支持properties),包含Logger(记录器)、Appender(输出目的地,如Console、File、RollingFile)和Layout(日志布局)三大组件。XML配置中,Configuration节点可设置日志级别和自动重载间隔;Appenders定义输出方式,支持基于大小、时间或两者的滚动策略;Loggers中Root指定根日志,Logger可针对特定包单独配置。快速入门需引入spring-boot-starter-log4j2依赖,设置logging.config,编写配置文件,使用LogManager或@Slf4j获取日志对象输出。此外,还支持过滤器(ThresholdFilter、LevelRangeFilter)和多种布局格式(JSON、XML、HTML、CSV)。

LogBack框架

LogBack框架

**Logback** 是由 Log4j 创始人设计的高性能日志框架,作为 SLF4J 的原生实现,具备异步日志、灵活配置、多种日志级别(TRACE~FATAL)、多种输出方式(控制台、文件、邮件等)及丰富插件等特点。其配置文件通常为 XML 格式,核心结构包含 `appender`(输出目的地)、`logger`(记录器)和 `root`(根记录器)。Logger 支持层级继承与级别控制;Appender 包括控制台(ConsoleAppender)、文件(FileAppender)及滚动文件(RollingFileAppender),并支持基于时间/大小的滚动策略。常用过滤器有 LevelFilter 和 ThresholdFilter。与 Spring Boot 集成方便,支持 Lombok 注解简化使用。整体上,Logback 是 Java 生态中强大且易用的日志解决方案。

Log4j

Log4j

Log4j由三个核心组件构成:**Loggers**(日志级别控制)、**Appenders**(输出目标,如控制台、文件等)和**Layouts**(输出格式)。日志级别从低到高为DEBUG、INFO、WARN、ERROR、FATAL,输出时只打印级别大于等于设定值的日志。 **快速入门**需引入log4j依赖,创建`log4j.properties`配置文件,在代码中通过`Logger.getLogger()`获取记录器并调用`info()`等方法输出日志。配置文件可设置根日志级别、Appender类型(如ConsoleAppender、FileAppender、DailyRollingFileAppender等)及布局格式(如PatternLayout)。通过`ConversionPattern`自定义输出格式,包括时间、级别、类名、行号等信息。最终实现灵活、可控的日志记录。

日志框架概述

日志框架概述

本文介绍了日志技术及其体系结构。日志技术能够将系统执行信息记录到控制台、文件或数据库中,并支持以开关形式控制日志启停,无需修改源代码。在体系结构方面,Log4j、Logback 和 Log4j2 均可通过 SLF4J 作为日志门面使用,SLF4J 提供统一接口,使不同日志实现框架之间能够方便地互相切换,而不影响应用程序代码。

Spring Validation

Spring Validation

本文介绍了Java数据校验框架的背景与演变:传统Web项目中,字段校验与业务逻辑混合会导致代码臃肿且难以维护。为解决此问题,Java社区先后引入JSR-303(Bean Validation 1.0)和JSR-380(Bean Validation 2.0),Hibernate Validator作为参考实现,Spring Boot通过自动配置简化了集成。快速入门步骤包括:引入`spring-boot-starter-validation`依赖;在实体类字段上使用`@NotNull`、`@NotBlank`、`@Size`等注解声明校验规则;在Controller方法参数前加`@Valid`或`@Validated`启用校验;通过全局异常处理器(如`@ControllerAdvice`)捕获`MethodArgumentNotValidException`和`ConstraintViolationException`并返回统一响应。文章还列举了常用校验注解:基本校验(`@Null`、`@NotEmpty`等)、数字校验(`@Min`、`@Max`、`@Positive`等)、日期校验(`@Past`、`@Future`等)、字符串校验(`@Email`、`@Pattern`)及自定义注解的实现方法。

Lombok详解

Lombok详解

Lombok是Java开源库,通过注解替代繁琐的getter/setter等代码,提升代码整洁度。常用注解包括:@Getter/@Setter自动生成访问方法;@ToString生成toString();@EqualsAndHashCode生成equals和hashCode;@NoArgsConstructor/@AllArgsConstructor/@RequiredArgsConstructor生成构造方法;@Data组合上述功能;@Builder提供建造者模式;@Singular搭配@Builder处理集合字段;@Log系列自动添加日志对象;@NonNull检查空值;@Accessors定制方法风格(fluent/chain)。使用Lombok可减少样板代码,提高开发效率。

Junit单元测试

Junit单元测试

本文介绍了Java单元测试的概念及JUnit框架的使用。单元测试针对单个Java方法编写测试代码,能确保方法运行正常、便于修改验证、作为示例代码并可自动化运行。JUnit是Java最广泛的单元测试框架,支持断言验证期望结果,常用IDE集成,可方便组织运行测试。核心步骤:定义测试类(建议名“被测试类Test”)、测试方法(返回值void、空参,加@Test注解)。断言方法包括assertEquals、assertTrue等,用于判断结果。其他注解:@Before/@After(每个测试前后执行)、@BeforeClass/@AfterClass(整个类前后执行一次,需静态)、@Ignore(忽略测试)。JUnit5新增@BeforeEach等注解,功能类似。

登录验证基础

登录验证基础

本文系统介绍了登录认证流程及常见会话技术。用户初次登录后,通过会话技术(Cookie、Session、Token)维护状态。Cookie由服务器通过Set-Cookie写入浏览器,后续请求自动携带;Session在服务器端存储用户数据,依赖Cookie传递SessionId;令牌(Token)如JWT,由服务器生成并返回客户端,后续请求携带Token即可验证身份,无需服务端存储。常见登录验证方式包括:Cookie+Session(经典但存在服务端压力、集群同步及CSRF风险)、Token登录(无状态、安全灵活)、SSO单点登录(通过统一认证中心实现多系统一次登录)、OAuth第三方登录(利用微信、QQ等外部平台认证)。最后推荐用于用户认证与授权的经典五张表设计(用户、角色、权限等)。

EhCache3

EhCache3

Ehcache 3 是开源的 Java 缓存库,用于加速应用性能。核心组件包括 CacheManager(管理缓存生命周期)、Cache(存储数据)、CacheConfiguration(配置容量、过期策略等)、CacheLoader(从数据源加载数据)、CacheWriter(写入外部数据源)和 CacheEventListener(监听缓存事件)。功能特性有多级存储(堆内存、堆外、磁盘)、缓存策略(TTL/TTI 过期、LRU/LFU/FIFO 驱逐)、持久化与溢出、动态配置、JCache/Spring 集成、线程安全及 JMX 监控。快速入门需引入 `ehcache` 依赖,可通过 API 或 XML 配置 CacheManager 和 Cache,并执行 put/get/remove 操作。配置常见错误:heap 应小于 offheap 和 disk,且不可将 CacheManager 交由 Spring 管理(避免重复销毁)。

© 2026 日志记录