SpringBoot里slf4j日志功能的默认实现

举报
汪子熙 发表于 2022/02/21 21:05:04 2022/02/21
【摘要】 本文是这篇教程的学习笔记:https://www.springboottutorial.com/logging-with-spring-boot-logback-slf4j-and-log4j我有一个最简单的SpringBoot应用,其pom.xml里的依赖定义如下:上图看到很多Starter,比如Spring-boot-starter-data-redis, Spring-boot-sta...

本文是这篇教程的学习笔记:
https://www.springboottutorial.com/logging-with-spring-boot-logback-slf4j-and-log4j
我有一个最简单的SpringBoot应用,其pom.xml里的依赖定义如下:

上图看到很多Starter,比如Spring-boot-starter-data-redis, Spring-boot-starter-web等等。这些Starter都包含了一个spring-boot-starter, 而这个starter又包含了一个实现logging的starter,叫做spring-boot-starter-logging.

也就是说,如果我们使用SpringBoot,无需再导入额外的配置,就能使用日志功能了。

SpringBoot slf4j的默认实现是logback,默认输出是到控制台console:

As you can see the default logging framework is Logback with SLF4j as implementation.
By default, all logging goes to console.

在Application.properties文件里使用logging.level.root配置项目全局的日志级别:

当然要针对个别包进行日志级别的分别配置也是可以的:
logging.level.some.package.path=DEBUG
logging.level.some.other.package.path=ERROR

Custom configuration using logback.xml

Spring Boot will pick up all custom configuration using logback.xml as long as it is in the application class path.

将日志写入本地日志文件的做法:

运行在Docker里的SpringBoot应用,如何查看记录在文件系统的日志

我有一个SpringBoot应用,将其打包在一个Docker镜像里。

DockerFile如下:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
VOLUME /log
ADD target/prolikeService.jar app.jar
ENV JAVA_OPTS=""
ENTRYPOINT exec java $JAVA_OPTS -jar /app.jar

定义了一个log的持久化存储,这样SpringBoot应用在容器里运行时,我们可以用命令行进入容器内部,查看log文件夹下的日志文件。

在SpringBoot应用的Application.properties配置文件里,设置日志文件的输出目录为log:

使用下列的命令行制作镜像:
docker build -t jerry/springbootexample:v1 .

使用下面的命令行在镜像里运行SpringBoot应用:

docker run -p 8000:9000 --name jerrydockerdemo -d jerry/springbootexample:v1

使用docker ps查看镜像id:

使用下面的命令行进入镜像:

sudo docker exec -it 8302db78f838 /bin/sh

这样就在Docker镜像里查看SpringBoot应用运行时生成的日志文件:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。