JHipster - 日志文件

JHipster - Log Files

我有一个 JHipster 应用程序 运行,我想知道日志文件在哪里。它们在哪里产生? (新手问题,没找到)

我在 "Dev" 配置文件中使用默认配置。 (未更改有关应用程序的任何内容-dev.yml)

谢谢。

我还没有深入研究这个,但很快就会。我认为它的工作原理类似于 log4j/slf4j。您需要定义一个带有文件规范的附加程序。 http://logback.qos.ch/manual/configuration.html

罗布

好的,

所以这里是这个问题的答案:

您可以在资源目录中找到 xml 文件 logback.xml

控制台配置:

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <charset>utf-8</charset>
        <Pattern>[%p] %c - %m%n</Pattern>
    </encoder>
</appender>

对于一个文件

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  ...
</appender>

在文件末尾引用它

<root level="${logback.loglevel}">
    <appender-ref ref="CONSOLE"/> <!-- For Console Log -->
    <appender-ref ref="FILE"/> <!-- For File Log -->
</root>

src/main/resources/logback.xml 文件包含 JHipster 日志配置。 作为参考,还有一个额外的 src/test/resources/logback-test.xml 文件,在 运行 单元测试时使用。

默认情况下,JHipster 仅记录到控制台。当 运行 使用 mvn spring-boot:rungradlew bootRun(默认构建目标)时,您的日志将出现的唯一位置是控制台 window。但是,如果 运行 在 Web 容器内,例如 Tomcat,Web 容器可能会自动将日志保存到容器特定的位置。例如,Tomcat 将打印到控制台的所有日志消息保存到 [CATALINA_HOME]/logs/catalina.out.

如果您希望重新配置您的应用程序以将日志打印到文件中,您可以通过取消注释并自定义上述 logback 配置文件中的 FILE appender 声明来实现,然后添加对 FILE appender 的引用到根记录器。示例:

...

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>90</maxHistory>
    </rollingPolicy>
    <encoder>
        <charset>utf-8</charset>
        <Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern>
    </encoder>
</appender>

...

<root level="${logback.loglevel}">
    <appender-ref ref="CONSOLE"/> <!-- Optionally remove this -->
    <appender-ref ref="FILE"/> <!-- Add this -->
</root>

...

默认jh配置src\main\resourcess\logback-spring.xml:

<?xml version="1.0" encoding="UTF-8"?>

<configuration scan="true">
    <include resource="org/springframework/boot/logging/logback/base.xml"/>

<!-- The FILE and ASYNC appenders are here as examples for a production configuration -->
<!--
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>90</maxHistory>
        </rollingPolicy>
        <encoder>
            <charset>utf-8</charset>
            <Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern>
        </encoder>
    </appender>

    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <queueSize>512</queueSize>
        <appender-ref ref="FILE"/>
    </appender>
-->

    <logger name="com.theice.asdlc" level="#logback.loglevel#"/>

    <logger name="javax.activation" level="WARN"/>
    <logger name="javax.mail" level="WARN"/>
    <logger name="javax.xml.bind" level="WARN"/>
    <logger name="ch.qos.logback" level="WARN"/>
    <logger name="com.codahale.metrics" level="WARN"/>
    <logger name="com.ryantenney" level="WARN"/>
    <logger name="com.sun" level="WARN"/>
    <logger name="com.zaxxer" level="WARN"/>
    <logger name="org.apache" level="WARN"/>
    <logger name="org.apache.catalina.startup.DigesterFactory" level="OFF"/>
    <logger name="org.bson" level="WARN"/>
    <logger name="org.hibernate.validator" level="WARN"/>
    <logger name="org.hibernate" level="WARN"/>
    <logger name="org.hibernate.ejb.HibernatePersistence" level="OFF"/>
    <logger name="org.springframework" level="WARN"/>
    <logger name="org.springframework.web" level="WARN"/>
    <logger name="org.springframework.security" level="WARN"/>
    <logger name="org.springframework.cache" level="WARN"/>
    <logger name="org.thymeleaf" level="WARN"/>
    <logger name="org.xnio" level="WARN"/>
    <logger name="springfox" level="WARN"/>
    <logger name="sun.rmi" level="WARN"/>
    <logger name="liquibase" level="WARN"/>
    <logger name="sun.rmi.transport" level="WARN"/>

    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
        <resetJUL>true</resetJUL>
    </contextListener>

    <root level="#logback.loglevel#">
        <appender-ref ref="CONSOLE"/>
    </root>

</configuration> 

包括 spring-boot-master\spring-boot\src\main\resources\org\springframework\boot\logging\logback\base.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--
Base logback configuration provided for compatibility with Spring Boot 1.1
-->

<included>
 <include resource="org/springframework/boot/logging/logback/defaults.xml" />
 <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
 <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
 <include resource="org/springframework/boot/logging/logback/file-appender.xml" />
 <root level="INFO">
  <appender-ref ref="CONSOLE" />
  <appender-ref ref="FILE" />
 </root>
</included>
其中包括 defaults.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!--
Default logback configuration provided for import, equivalent to the programmatic
initialization performed by Boot
-->

<included>
 <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
 <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
 <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />

 <property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
 <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>

 <appender name="DEBUG_LEVEL_REMAPPER" class="org.springframework.boot.logging.logback.LevelRemappingAppender">
  <destinationLogger>org.springframework.boot</destinationLogger>
 </appender>

 <logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
 <logger name="org.apache.catalina.util.LifecycleBase" level="ERROR"/>
 <logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>
 <logger name="org.apache.sshd.common.util.SecurityUtils" level="WARN"/>
 <logger name="org.apache.tomcat.util.net.NioSelectorPool" level="WARN"/>
 <logger name="org.crsh.plugin" level="WARN"/>
 <logger name="org.crsh.ssh" level="WARN"/>
 <logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="ERROR"/>
 <logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>
 <logger name="org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration" level="WARN"/>
 <logger name="org.springframework.boot.actuate.endpoint.jmx" additivity="false">
  <appender-ref ref="DEBUG_LEVEL_REMAPPER"/>
 </logger>
 <logger name="org.thymeleaf" additivity="false">
  <appender-ref ref="DEBUG_LEVEL_REMAPPER"/>
 </logger>
</included>

控制台-appender.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--
Console appender logback configuration provided for import, equivalent to the programmatic
initialization performed by Boot
-->

<included>
 <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  <encoder>
   <pattern>${CONSOLE_LOG_PATTERN}</pattern>
   <charset>utf8</charset>
  </encoder>
 </appender>
</included>

最后是文件-appender.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--
File appender logback configuration provided for import, equivalent to the programmatic
initialization performed by Boot
-->

<included>
 <appender name="FILE"
  class="ch.qos.logback.core.rolling.RollingFileAppender">
  <encoder>
   <pattern>${FILE_LOG_PATTERN}</pattern>
  </encoder>
  <file>${LOG_FILE}</file>
  <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
   <fileNamePattern>${LOG_FILE}.%i</fileNamePattern>
  </rollingPolicy>
  <triggeringPolicy
   class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
   <MaxFileSize>10MB</MaxFileSize>
  </triggeringPolicy>
 </appender>
</included>

它正在临时目录中创建一个每 10MB 滚动一次的 spring.log 文件。

这是一个可能更适合生产的版本。

它启用异步文件附加程序,并用 [=80] 中的调试、信息(无跟踪或调试)和错误(无信息、跟踪、调试)日志文件替换临时目录 spring.log =] 每天滚动的目录。

它使用易于解析的 splunk 格式,以及易于人类扫描的列宽。

它包含简单的 Servlet 过滤器可用于向 MDC 添加值的列:IP=IP 地址、S=会话 ID、TX=事务 ID、U=用户 ID。例如 org.slf4j.MDC.put("TX", java.util.UUID.randomUUID().toString()); :

<?xml version="1.0" encoding="UTF-8"?>

<configuration scan="true">
 <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
 <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
 <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />

  
  <!-- Write logs to Tomcat instance logs directory or current directory -->
 <property name="LOG_ROOT"            value="${CATALINA_BASE:-.}"/>
 <property name="LOG_PATH"            value="${LOG_ROOT}/logs"/>
 <property name="LOG_ARCHIVE_PREFIX"  value="${LOG_PATH}/APPID-%d{yyyy-MM-dd}-"/>
 <property name="LOG_ARCHIVE_DAYS"    value="5"/>
  
  <!-- Patterns assume Servlet Filter adds values to MDC for: IP=IP Address, S=Session Id, TX=Transaction Id, U=User Id.  eg org.slf4j.MDC.put("TX", java.util.UUID.randomUUID().toString());  -->
 <property name="LOG_PATTERN"         value="%date{HH:mm:ss.SSS} ,ip=%-16.16X{IP} ,s=%-32.32X{S} ,x=%-30.30X{TX} ,l=%-5.5level ,u=%-12.12X{U} ,c=%-30.30logger{0} ,f=%-20.20method ,t=%-15.15t ,m=%-80m ,cf=%logger %n"/>  
  <property name="CONSOLE_LOG_PATTERN" value="%date{HH:mm:ss.SSS} ,ip=%-3.3X{IP} ,s=%-8.8X{S} ,x=%-8.8X{TX} ,l=%-5.5level ,u=%-8.8X{U} ,c=%-30.30logger{0} ,f=%-20.20method ,t=%-10.10t ,m=%m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
  
 <!--
 <property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(- - -){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
  <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } - - - [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/> 
  -->
  
 <appender name="DEBUG_LEVEL_REMAPPER" class="org.springframework.boot.logging.logback.LevelRemappingAppender">
  <destinationLogger>org.springframework.boot</destinationLogger>
 </appender>

 <logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
 <logger name="org.apache.catalina.util.LifecycleBase" level="ERROR"/>
 <logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>
 <logger name="org.apache.sshd.common.util.SecurityUtils" level="WARN"/>
 <logger name="org.apache.tomcat.util.net.NioSelectorPool" level="WARN"/>
 <logger name="org.crsh.plugin" level="WARN"/>
 <logger name="org.crsh.ssh" level="WARN"/>
 <logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="ERROR"/>
 <logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>
 <logger name="org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration" level="WARN"/>
 <logger name="org.springframework.boot.actuate.endpoint.jmx" additivity="false">
  <appender-ref ref="DEBUG_LEVEL_REMAPPER"/>
 </logger>
 <logger name="org.thymeleaf" additivity="false">
  <appender-ref ref="DEBUG_LEVEL_REMAPPER"/>
 </logger>


<!-- <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/> -->

 <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  <encoder>
   <pattern>${CONSOLE_LOG_PATTERN}</pattern>
   <charset>utf8</charset>
  </encoder>
 </appender>
<!--
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <encoder>
   <pattern>${FILE_LOG_PATTERN}</pattern>
  </encoder>
  <file>${LOG_FILE}</file>
  <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
   <fileNamePattern>${LOG_FILE}.%i</fileNamePattern>
  </rollingPolicy>
  <triggeringPolicy
   class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
   <MaxFileSize>10MB</MaxFileSize>
  </triggeringPolicy>
 </appender>
-->

    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>${LOG_PATH}/debug.log</File>    
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>DEBUG</level>
          <onMatch>ACCEPT</onMatch>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>INFO</level>
          <onMatch>ACCEPT</onMatch>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>TRACE</level>
          <onMatch>ACCEPT</onMatch>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>WARN</level>
          <onMatch>ACCEPT</onMatch>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>ERROR</level>
          <onMatch>ACCEPT</onMatch>
        </filter>    
        <encoder><charset>utf-8</charset><pattern>${LOG_PATTERN}</pattern></encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${LOG_ARCHIVE_PREFIX}debug.log</FileNamePattern><maxHistory>${LOG_ARCHIVE_DAYS}</maxHistory></rollingPolicy>
    </appender>

    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>${LOG_PATH}/info.log</File>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>DEBUG</level>
          <onMatch>DENY</onMatch>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>INFO</level>
          <onMatch>ACCEPT</onMatch>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>TRACE</level>
          <onMatch>DENY</onMatch>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>WARN</level>
          <onMatch>ACCEPT</onMatch>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>ERROR</level>
          <onMatch>ACCEPT</onMatch>
        </filter>
        <encoder><charset>utf-8</charset><pattern>${LOG_PATTERN}</pattern></encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${LOG_ARCHIVE_PREFIX}info.log</FileNamePattern><maxHistory>${LOG_ARCHIVE_DAYS}</maxHistory></rollingPolicy>
    </appender>

    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>${LOG_PATH}/error.log</File>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>DEBUG</level>
          <onMatch>DENY</onMatch>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>INFO</level>
          <onMatch>DENY</onMatch>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>TRACE</level>
          <onMatch>DENY</onMatch>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>WARN</level>
          <onMatch>ACCEPT</onMatch>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>ERROR</level>
          <onMatch>ACCEPT</onMatch>
        </filter>
        <encoder><charset>utf-8</charset><pattern>${LOG_PATTERN}${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}</pattern></encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${LOG_ARCHIVE_PREFIX}error.log</FileNamePattern><maxHistory>${LOG_ARCHIVE_DAYS}</maxHistory></rollingPolicy>
    </appender>

    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <queueSize>512</queueSize>
        <appender-ref ref="INFO_FILE" />
      <appender-ref ref="ERROR_FILE" />
        <appender-ref ref="DEBUG_FILE"/>
    </appender>

 <root level="INFO">
  <appender-ref ref="CONSOLE" />
  <appender-ref ref="DEBUG_FILE" />
  <appender-ref ref="INFO_FILE" />
  <appender-ref ref="ERROR_FILE" />
 </root>


    
    <logger name="com.theice.asdlc" level="#logback.loglevel#"/>

    <logger name="javax.activation" level="WARN"/>
    <logger name="javax.mail" level="WARN"/>
    <logger name="javax.xml.bind" level="WARN"/>
    <logger name="ch.qos.logback" level="WARN"/>
    <logger name="com.codahale.metrics" level="WARN"/>
    <logger name="com.ryantenney" level="WARN"/>
    <logger name="com.sun" level="WARN"/>
    <logger name="com.zaxxer" level="WARN"/>
    <logger name="org.apache" level="WARN"/>
    <logger name="org.apache.catalina.startup.DigesterFactory" level="OFF"/>
    <logger name="org.bson" level="WARN"/>
    <logger name="org.hibernate.validator" level="WARN"/>
    <logger name="org.hibernate" level="WARN"/>
    <logger name="org.hibernate.ejb.HibernatePersistence" level="OFF"/>
    <logger name="org.springframework" level="WARN"/>
    <logger name="org.springframework.web" level="WARN"/>
    <logger name="org.springframework.security" level="WARN"/>
    <logger name="org.springframework.cache" level="WARN"/>
    <logger name="org.thymeleaf" level="WARN"/>
    <logger name="org.xnio" level="WARN"/>
    <logger name="springfox" level="WARN"/>
    <logger name="sun.rmi" level="WARN"/>
    <logger name="liquibase" level="WARN"/>
    <logger name="sun.rmi.transport" level="WARN"/>

    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
        <resetJUL>true</resetJUL>
    </contextListener>

    <root level="#logback.loglevel#">
        <appender-ref ref="CONSOLE"/>
    </root>

</configuration>

我遇到了同样的问题,但在进行了大量更改后,日志文件发生了变化,但日志消息并未插入到日志文件中。

我对 logback-spring.xml

进行了以下更改
<?xml version="1.0" encoding="UTF-8"?>

<!--<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <charset>utf-8</charset>
        <Pattern>[%p] %c - %m%n</Pattern>
    </encoder>
</appender>-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>90</maxHistory>
    </rollingPolicy>
    <encoder>
        <charset>utf-8</charset>
        <Pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</Pattern>
    </encoder>
</appender>

<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>512</queueSize>
    <appender-ref ref="FILE"/>
</appender>

<logger name="com.myolo" level="INFO"/>
<logger name="com.myolo" level="DEBUG"/>
<logger name="com.myolo" level="ERROR"/>
<logger name="javax.activation" level="WARN"/>
<logger name="javax.mail" level="WARN"/>
<logger name="javax.xml.bind" level="WARN"/>
<logger name="ch.qos.logback" level="WARN"/>
<logger name="com.codahale.metrics" level="WARN"/>
<logger name="com.ryantenney" level="WARN"/>
<logger name="com.sun.xml.internal.bind" level="WARN"/>
<logger name="com.zaxxer" level="WARN"/>
<logger name="io.undertow" level="WARN"/>
<logger name="net.sf.ehcache" level="WARN"/>
<logger name="org.apache" level="WARN"/>
<logger name="org.apache.catalina.startup.DigesterFactory" level="OFF"/>
<logger name="org.bson" level="WARN"/>
<logger name="org.hibernate.validator" level="WARN"/>
<logger name="org.hibernate" level="WARN"/>
<logger name="org.hibernate.ejb.HibernatePersistence" level="OFF"/>
<logger name="org.springframework" level="WARN"/>
<logger name="org.springframework.web" level="WARN"/>
<logger name="org.springframework.security" level="WARN"/>
<logger name="org.springframework.cache" level="WARN"/>
<logger name="org.thymeleaf" level="WARN"/>
<logger name="org.xnio" level="WARN"/>
<logger name="springfox" level="WARN"/>
<logger name="sun.rmi" level="WARN"/>
<logger name="liquibase" level="WARN"/>
<logger name="sun.rmi.transport" level="WARN"/>

<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
    <resetJUL>true</resetJUL>
</contextListener>

<root level="debug">
    <appender-ref ref="FILE"/>
</root>

<logger name="com.myolo">
    <appender-ref ref="FILE" />
</logger>

在Dev模式下,修改logback-spring.xml只创建日志文件,但不会将数据记录到该文件(文件已创建但为空)。 我必须将 "file" 键添加到 applicatio-dev.yml 文件中的 "logging" 键中:

记录:

file: *path/log_file_name.log* 

(例如:

记录:

file: logs/application1.log

)