代码之家  ›  专栏  ›  技术社区  ›  user1884155

spring boot应用程序中的双日志文件

  •  4
  • user1884155  · 技术社区  · 6 年前

    bootstrap.yml有:

    • spring.application.name = service1

    application.yml有:

    • logging.file: /app/logs/${spring.application.name}.log
    • logging.level.root: INFO
    • logging.level.com.myproject.api: TRACE

    @Sfl4j 注解。spring boot声称对此有默认支持,但我在 /app/logs 当应用程序启动时有两个日志文件:

    • /app/logs/myservice1.log
    • /app/logs/myservice1-service.log :此文件的名称错误(在 -service 来自?)但它有正确的对数水平。我注意到这个文件的名称与代码所在的Git目录的名称相匹配,它也是IntelliJ中这段代码的模块的名称。我无法解释spring如何“获取”这个名称,并在运行编译的代码时以某种方式用于日志文件名?!

    我在pom文件中使用了下面的声明来获得spring引导,我怀疑除了我声明的Sfl4j之外,一些默认的logback文件也在创建一个日志文件。有没有办法让我只有一个日志文件,有我指定的名称和正确的日志级别?也许我需要排除依赖关系?

                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-parent</artifactId>
                    <version>${spring.boot.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring.cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Riz    6 年前

    添加以下属性文件

    logging.config=logback.xml
    

    然后创建logback.xml文件。在这里您可以放置任何您喜欢的配置,例如:

    <?xml version="1.0" encoding="UTF-8" ?>
    <configuration scan="true">
    
    <!-- Logging to system file -->
    <appender name="system-file" class="ch.qos.logback.core.rolling.RollingFileAppender">
    
        <!-- output filename -->
        <file>logs/app.log</file>
    
    
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>logs/app_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>500MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
        <pattern>%d{dd-MM-yyyy HH:mm:ss} - %c [%t] %-5p - %m%n</pattern>
        </encoder>
    </appender>
    
    
    <!-- overide levels for specific loggers-->
    <logger name="com.myproject.api" level="TRACE" />
    
    
    <root level="INFO">
        <appender-ref ref="system-file"/>
    </root>
    </configuration>