springboot 项目日志配置文件详解

53 篇文章 1 订阅

spring boot  项目指定 日志配置文件

在Spring Boot项目中,可以通过在application.propertiesapplication.yml文件中指定日志配置文件来配置日志。

1. 使用application.properties文件:

application.properties中,您可以使用以下属性来指定日志配置文件:

logging.config=classpath:custom-logback.xml

上述配置将告诉Spring Boot使用位于类路径下的custom-logback.xml文件作为日志配置文件。您可以将文件路径更改为您自己的日志配置文件的路径。

2. 使用application.yml文件:

application.yml中,您可以使用以下属性来指定日志配置文件:

logging:
  config: classpath:custom-logback.xml

与上述application.properties的配置相同,此配置将告诉Spring Boot使用位于类路径下的custom-logback.xml文件作为日志配置文件。

请确保日志配置文件位于类路径下,或者根据需要指定正确的文件路径。

使用上述配置,您可以在Spring Boot项目中指定自定义的日志配置文件,以覆盖默认的日志配置。

logback-spring.xml 和 logback.xml 区别

方案一

在使用 Logback 作为日志框架时,logback-spring.xml 和 logback.xml 是两个常用的配置文件,它们在加载和处理配置方面略有不同。

  1. logback-spring.xml

    • logback-spring.xml 是专为 Spring Boot 项目准备的 Logback 配置文件。
    • 当使用 Spring Boot 时,如果存在 logback-spring.xml 文件,Spring Boot 会自动加载并替换默认的 Logback 配置。
    • logback-spring.xml 支持 Spring Boot 的特性和扩展,例如可以使用 Spring 的属性占位符 ${} 进行动态配置。
    • Spring Boot 在加载 logback-spring.xml 时,还会进行日志级别的自动配置,根据应用程序的 application.properties 或 application.yml 中的 logging.level.* 配置来设置日志级别。
    • logback-spring.xml 的加载顺序优先于 logback.xml
  2. logback.xml

    • logback.xml 是通用的 Logback 配置文件,适用于非 Spring Boot 项目或不需要 Spring Boot 特性的项目。
    • 如果存在 logback.xml 文件,它会被加载和使用,而忽略任何 logback-spring.xml
    • logback.xml 配置中无法使用 Spring 的属性占位符,因为它不会经过 Spring 的处理。
    • logback.xml 需要手动配置日志级别和其他相关设置,不会自动受到应用程序的其他配置文件影响。

总结:

  • 如果使用 Spring Boot 项目,建议使用 logback-spring.xml 配置文件,以便享受 Spring Boot 的自动配置和属性占位符的特性。
  • 对于非 Spring Boot 项目或不需要 Spring Boot 特性的项目,使用 logback.xml 配置文件即可。

需要注意的是,无论是 logback-spring.xml 还是 logback.xml,它们的配置语法和元素都是相同的,可以根据具体需求进行配置。

方案二

logback-spring.xml 和 logback.xml 是用于配置 Logback 日志框架的文件,它们在使用方式和加载机制上有一些区别。

logback-spring.xml 是针对 Spring Framework 应用程序特定的 Logback 配置文件,它与 Spring 的集成提供了一些额外的功能和特性。当存在 logback-spring.xml 文件时,Spring Boot 应用程序会优先加载它。这个特定的文件名是为了利用 Spring Boot 的自动配置机制,可以通过在 logback-spring.xml 中使用 Spring 属性占位符,从应用程序的 application.properties 或 application.yml 文件中动态配置日志。这意味着您可以在运行时通过 Spring 的属性配置来更改 Logback 日志的行为。

相比之下,logback.xml 是通用的 Logback 配置文件,用于非 Spring 应用程序或不需要与 Spring 集成的应用程序。当不存在 logback-spring.xml 文件时,Logback 会尝试加载 logback.xml 文件。这个文件通常用于独立的 Java 应用程序或其他非 Spring 环境下的应用程序。

如果您使用的是 Spring Boot 框架,建议优先使用 logback-spring.xml 文件来配置 Logback,以获得更好的集成和动态配置的能力。如果您不使用 Spring Boot,或者不需要与 Spring 集成,那么可以使用 logback.xml 来配置 Logback。

spring boot 项目日志配置文件指定日志输入目录

在Spring Boot项目中,要指定日志文件的输出目录,您可以使用以下方法:

1. 使用application.properties配置文件:

application.properties中,您可以使用以下属性来指定日志文件的输出目录:

logging.file.path=/path/to/logs

/path/to/logs替换为您希望日志文件输出的目录路径。

2. 使用application.yml配置文件:

application.yml中,您可以使用以下属性来指定日志文件的输出目录:

logging:
  file:
    path: /path/to/logs

同样,将/path/to/logs替换为您希望日志文件输出的目录路径。

请确保指定的目录具有适当的权限,以便应用程序能够在该目录中创建和写入日志文件。

通过上述配置,您可以将日志文件输出到指定的目录,而不是默认的日志目录。

日志文件配置案例

案例一

配置文件 logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <contextName>logback</contextName>
    <!--输出到控制台-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--按天生成日志-->
    <appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Prudent>true</Prudent>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                applog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log
            </FileNamePattern>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} -%msg%n
            </Pattern>
        </layout>
    </appender>
    <!-- logger节点,可选节点,作用是指明具体的包或类的日志输出级别,以及要使用的<appender>(可以把<appender>理解为一个日志模板)。addtivity:非必写属性,是否向上级loger传递打印信息。默认是true-->
    <logger name="com.leshangju.project" additivity="false">
        <appender-ref ref="console"/>
        <appender-ref ref="logFile"/>
    </logger>

    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="logFile"/>
    </root>

</configuration>

日志生成目录展示

案例二

配置文件 logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false" scanPeriod="60 seconds" debug="false">

    <springProperty scope="context" name="logPath" source="gjsp.logs.path" defaultValue="${user.home}/data/app/cars-gjsp/logs"/>

    <property name="APP_NAME" value="cars-gjsp"/>
    <property name="LOG_HOME" value="data/app/gjsp/logs/${APP_NAME}"/>
    <springProfile name="prod">
        <property name="LOG_HOME" value="/${logPath}/${APP_NAME}"/>
    </springProfile>

    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        </layout>
    </appender>

    <appender name="appLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/${APP_NAME}.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/${APP_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
            <MaxHistory>30</MaxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern>
        </layout>
    </appender>

    <logger name="org.springframework" level="info" additivity="false"/>

    <logger name="io.swagger" level="OFF"/>
    <logger name="springfox.documentation" level="OFF"/>
    <logger name="io.lettuce" level="info" additivity="false"/>
    <logger name="io.netty" level="info" additivity="false"/>
    <logger name="org.apache.http.wire" level="info" additivity="false"/>
    <logger name="jdbc.connection" level="OFF"/>
    <logger name="jdbc.resultset" level="OFF"/>
    <logger name="jdbc.resultsettable" level="OFF"/>
    <logger name="jdbc.audit" level="OFF"/>
    <logger name="jdbc.sqltiming" level="INFO"/>
    <logger name="jdbc.sqlonly" level="OFF"/>

    <logger name="org.hibernate.SQL" additivity="false">
        <level value="info"/>
        <appender-ref ref="console"/>
        <appender-ref ref="appLogAppender"/>
    </logger>

    <!-- 2. 输出SQL 的参数到控制台和文件-->
    <logger name="org.hibernate.type.descriptor.sql.BasicBinder" additivity="false">
        <level value="info"/>
        <appender-ref ref="console"/>
        <appender-ref ref="appLogAppender"/>
    </logger>

    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="appLogAppender"/>
    </root>
</configuration>

 日志生成目录展示

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Spring Boot项目logback.xml配置,可以按照以下步骤进行设置: 1. 在src/main/resources目录下创建logback.xml文件。 2. 在logback.xml文件中,首先需要引入logback的命名空间和标签,例如: ``` <configuration xmlns="http://ch.qos.logback/xml/ns/logback" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback http://ch.qos.logback/xml/ns/logback/logback.xsd"> ``` 3. 设置日志输出的级别,可以使用`<root>`标签设置全局的日志级别,例如: ``` <root level="INFO"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </root> ``` 4. 配置日志输出的格式,使用`<pattern>`标签设置输出格式的模式,例如: ``` <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread %-5level %logger{36} - %msg%n</pattern> ``` 5. 配置日志输出的目标,可以使用`<appender>`标签配置输出到控制台或文件,例如: ``` appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>logs/myapp.log</file> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> ``` 6. 配置日志文件的滚动策略,可以使用`<rollingPolicy>`标签配置日志文件的滚动策略,例如: ``` <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/myapp.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logs/myapp-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> ``` 7. 配置日志的异步输出,可以使用`<asyncAppender>`标签配置日志的异步输出,例如: ``` <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </appender> <root level="INFO"> <appender-ref ref="ASYNC"/> </root> ``` 8. 结束配置文件,使用`</configuration>`标签结束配置文件。 以上是一般的logback.xml配置示例,您可以根据项目的具体需求进行调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Springboot logback.xml配置详解](https://blog.csdn.net/zch981964/article/details/129085279)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值