使用 Logback 将日志输出重定向到标准错误

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 63w+ 字,讲解图 2808+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2200+ 小伙伴加入学习 ,欢迎点击围观

当我们在代码中使用 Logback 作为 SLF4J API 实现时,我们可以将日志输出发送到我们的控制台。默认情况下,标准输出用于显示日志输出。我们可以更改配置并将控制台的日志输出发送到标准错误。当我们使用一个使用标准输出进行通信的框架并且我们仍然希望在控制台上看到我们的应用程序的日志记录时,这会很有用。我们将 ConsoleAppender 的属性 target 设置为值 System.err 而不是默认的 System.out

Groovy 中的以下示例 Logback 配置将日志输出发送到控制台和标准错误:


 appender("SystemErr", ConsoleAppender) {
    // Enable coloured output.
    withJansi = true
encoder(PatternLayoutEncoder) {
    pattern = "%blue(%-5level) %green(%logger{35}) - %msg %n"
}

// Redirect output to the System.err.
target = 'System.err'

}

root(DEBUG, ["SystemErr"])

如果我们想使用 XML 格式,我们得到以下配置:


 appender("SystemErr", ConsoleAppender) {
    // Enable coloured output.
    withJansi = true
encoder(PatternLayoutEncoder) {
    pattern = "%blue(%-5level) %green(%logger{35}) - %msg %n"
}

// Redirect output to the System.err.
target = 'System.err'

}

root(DEBUG, ["SystemErr"])


相关文章