java - 使用 slf4j 的 Spring Boot 没有创建日志文件
问题描述
我有一个 Spring Boot 应用程序,尝试按照https://www.baeldung.com/spring-boot-logging的教程使用 slf4j,但是日志仅在控制台端打印。给定目录中没有创建日志文件/var/logs
。
log4j2-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout
pattern="%style{%d{ISO8601}}{black} %highlight{%-5level }[%style{%t}{bright,blue}] %style{%C{1.}}{bright,yellow}: %msg%n%throwable" />
</Console>
<RollingFile name="RollingFile"
fileName="/var/logs/spring-boot-logger-log4j2.log"
filePattern="/var/logs/$${date:yyyy-MM}/spring-boot-logger-log4j2-%d{-dd-MMMM-yyyy}-%i.log.gz">
<PatternLayout>
<pattern>%d %p %C{1.} [%t] %m%n</pattern>
</PatternLayout>
<Policies>
<!-- rollover on startup, daily and when the file reaches
10 MegaBytes -->
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy
size="10 MB" />
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<!-- LOG everything at INFO level -->
<Root level="info">
<AppenderRef ref="Console" />
<AppenderRef ref="RollingFile" />
</Root>
<Logger name="com.buraktas">
<AppenderRef ref="LogFile"/>
<AppenderRef ref="Console"/>
</Logger>
</Loggers>
</Configuration>
maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.0.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
解决方案
您可以在文件中定义日志路径,application.properties
例如查看以下链接:
logging.level.com.example.springscheduler = debug
logging.level.org.springframework.web = WARN
logging.file.name =log/loggingdemocontroller.log
https://springbootmvc.blogspot.com/2020/06/spring-boot-logging-using-orgslf4jlogger.html
推荐阅读
- python - 全局 eventFilter 不会在 Qt 中的 QThread 中捕获目标事件
- r - if (length(scores.temp) == 1 && scores.temp == 0) { 中的错误:需要 TRUE/FALSE 的缺失值
- arrays - 在 Dart/Flutter 中反序列化 json 数组
- mysql - 将错误消息列值与查询中使用的列名匹配
- javascript - 预加载器在某些浏览器中不会停止。如何解决这个问题?
- python - 尝试连接到无效的主机和端口时,我的程序崩溃
- java - IDE 无法识别 Spring 框架导入
- python - 带有 Win32Com 的 Python 脚本未在任务调度程序中运行
- gitlab - 与其他变量连接时从 GitLab 中的秘密变量中获取值
- mysql - 在sql中列的值之间创建行