如何配置Tinylog捕获System.err系统错误流并输出到日志文件
Tinylog捕获System.err及第三方日志的配置方案
一、捕获System.err/System.out流配置
直接在你的tinylog.properties中添加如下配置,即可将JVM标准输出、标准错误流的内容全部交给Tinylog处理,按你的输出规则同时写入控制台和滚动文件:
# 将System.out重定向为Tinylog的INFO级别日志 stream.redirect.out = INFO # 将System.err重定向为Tinylog的ERROR级别日志 stream.redirect.err = ERROR
二、第三方日志框架桥接配置
你当前看到的log4j警告、SLF4J绑定冲突警告,部分是第三方组件直接输出到System.err的,还有部分是因为你项目中存在多个日志实现导致的,建议同时配置日志桥接统一归集所有日志:
- 先在Maven依赖中排除冲突的日志实现:找到引入
slf4j-simple、slf4j-log4j12的父依赖,用<exclusions>标签将这两个依赖排除,避免SLF4J绑定冲突 - 新增Tinylog的日志桥接依赖,版本和你当前使用的2.2.1保持一致:
<!-- SLF4J日志桥接:所有使用SLF4J输出的日志统一走Tinylog --> <dependency> <groupId>org.tinylog</groupId> <artifactId>slf4j-tinylog</artifactId> <version>2.2.1</version> </dependency> <!-- Log4j 1.x日志桥接:所有使用Log4j 1.x输出的日志统一走Tinylog --> <dependency> <groupId>org.tinylog</groupId> <artifactId>log4j1.2-api</artifactId> <version>2.2.1</version> </dependency>
完成以上配置后重启应用,所有日志都会按你配置的规则输出到目标位置,不会再出现控制台有日志但文件没有的情况。
内容的提问来源于stack exchange,提问作者Neelesh
相关产品推荐
相关产品推荐

