SpringBoot里slf4j日志功能的默认实现
本文是这篇教程的学习笔记:
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应用运行时生成的日志文件:
- 点赞
- 收藏
- 关注作者
评论(0)