Spring Boot使用application.yml将日志记录到Windows PC中的文件

时间:2020-05-21 22:52:44

标签: java spring-boot logging

我已经在互联网上搜索了几个小时。 我找不到这个琐碎的东西。 我正在使用Windows PC。 我正在使用Spring Boot并使用所有默认设置。 我想登录到文件,并且正在使用YAML应用程序格式。 我的application.ymlsrc/main/resources中。 其内容正是这些内容:

spring:
  logging:
    file: logs/app.log
    pattern:
      console: "%d [%t] %-5level %logger{36} - %msg%n"
      file: "%d [%t] %-5level %logger{36} - %msg%n"
    level:
      com.m2evorah: DEBUG
      org.springframework: DEBUG
      org.hibernate: DEBUG

我可以在Eclipse IDE的控制台中正常看到日志记录,但是当我在PC上搜索app.log文件时,找不到它。因此,即使它根据classpath等进行操作,我仍然应该能够在搜索中看到它。我的yml文件出了什么问题?

3 个答案:

答案 0 :(得分:0)

logging.file属性不在spring属性树下。

在您的情况下,路径定义为spring.logging.file

Yaml应该看起来像这样:

logging:
  file.name: logs/app.log
  pattern:
    console: "%d [%t] %-5level %logger{36} - %msg%n"
    file: "%d [%t] %-5level %logger{36} - %msg%n"
  level:
    com.m2evorah: DEBUG
    org.springframework: DEBUG
    org.hibernate: DEBUG

编辑:

应该使用logging.file属性而不是logging.file.name

答案 1 :(得分:0)

哇!我终于让它工作了。对我来说,成功的application.yml是这样的:

logging:
  file.name: logs/app.log
  pattern:
    console: "%d [%t] %-5level %logger{36} - %msg%n"
    file: "%d [%t] %-5level %logger{36} - %msg%n"
  level:
    com.m2evorah: DEBUG
    org.springframework: DEBUG
    org.hibernate: DEBUG

注意使用了file.name

答案 2 :(得分:0)

不是将日志记录配置放在application.yml中,而是在同一log4j.properties/log4j.yml文件夹中创建src/main/resources文件,然后将以下配置放入

# Root logger option
log4j.rootLogger=INFO, file

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.datePattern='_'yyyy-MM-dd'.log'

log4j.appender.file.File=logs/Facts.log

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=timestamp=%d{yyyy-MM-dd HH:mm:ss} | level=%-5p | source=%c{1}:%L | logMessage=%m%n

注意:将在您的项目中创建包含Facts.log文件的日志文件夹,并且每天都会生成新的日志文件并每天跟踪您的项目

只需在您要应用记录器的特定类中的代码下方放置

Logger logger = (Logger) LoggerFactory.getLogger(<classname>.class);
相关问题