项目日志logback配置

本文分享了Logback日志框架的配置经验,包括Maven依赖引入、logback.properties及logback.xml配置详解,适用于希望精细化管理应用日志输出的开发者。

最近把项目logback的日志重新配置了一下,记录一下。

一、mavan依赖

 <!-- 日志文件管理包 -->
        <!-- log start -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
        </dependency>
        <!-- log end -->

二、资源配置文件

1.logback.properties

#http://logback.qos.ch/manual/configuration.html
#<!-- 本项目的名字 -->
context.name=test-web
#<!-- 日志存放地址 -->
log.dir=/logs/test-web
#<!-- 日志文件样式 按天-->
file.name.pattern=yyyy-MM-dd
#<!-- 单日志文件最大 -->
max.file.size=2MB
#<!-- 日志保存时间 30天-->
max.history=30
#<!-- 日志文件最大 -->
total.size.cap=2GB
#<!-- 日志输出样式 -->
conversion.pattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%n
#<!-- 日志输出级别 -->
root.level=info

2.logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <property resource="logback.properties" />
    <!-- 本项目的名字 -->
    <contextName>${context.name}</contextName>

    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${conversion.pattern}</pattern>
        </encoder>
    </appender>

    <!--日志文件 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.dir}/${context.name}.%d{${file.name.pattern}}.%i.log</fileNamePattern>
            <maxFileSize>${max.file.size}</maxFileSize>
            <maxHistory>${max.history}</maxHistory>
            <totalSizeCap>${total.size.cap}</totalSizeCap>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${conversion.pattern}</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <root level="${root.level}">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>

    <!--springframework myibatis log configure-->
    <!--<logger name="org.springframework" level="debug"></logger>-->
    <logger name="com.apache.ibatis" level="TRACE"/>
    <logger name="java.sql.Connection" level="DEBUG"/>
    <logger name="java.sql.Statement" level="DEBUG"/>
    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
</configuration>

我写个logback.properties主要是为了配置方便,想改配置直接在logback.properties里改就行啦,以前配置log4j习惯了。不喜欢直接在logback.xml里面配就行啦。觉得有用的赞一下啦。

Spring Boot 默认使用 Logback 作为日志框架,以下详细介绍使用 Logback 进行日志配置的方法: ### 1. 引入依赖 如果使用 Spring Boot 项目,通常在创建项目时就已经包含了 Logback 的依赖,若需要检查可查看 `pom.xml`(Maven 项目)或 `build.gradle`(Gradle 项目)文件。 #### Maven 依赖 ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- spring-boot-starter-web 已经包含了 Logback 依赖 --> </dependency> </dependencies> ``` #### Gradle 依赖 ```groovy dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' // spring-boot-starter-web 已经包含了 Logback 依赖 } ``` ### 2. 创建 Logback 配置文件 在 `src/main/resources` 目录下创建 `logback-spring.xml` 文件(推荐使用 `logback-spring.xml` 而非 `logback.xml`,因为前者支持 Spring Boot 的高级特性,如配置文件占位符)。以下是一个简单的 `logback-spring.xml` 示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 定义日志文件的存储路径 --> <property name="LOG_FILE_PATH" value="logs"/> <!-- 控制台输出 --> <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.rolling.RollingFileAppender"> <file>${LOG_FILE_PATH}/app.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_FILE_PATH}/app.%d{yyyy-MM-dd}.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> <!-- 根日志级别和使用的 appender --> <root level="info"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </root> </configuration> ``` 在上述配置中: - `CONSOLE` 是一个控制台输出的 appender,用于将日志输出到控制台。 - `FILE` 是一个滚动文件输出的 appender,将日志输出到文件中,并且按日期进行滚动,最多保留 30 天的历史日志文件。 - `root` 标签定义了根日志级别为 `info`,并指定了使用 `CONSOLE` 和 `FILE` 两个 appender。 ### 3. 在代码中使用日志 在 Spring Boot 项目中,可以使用 `org.slf4j.Logger` 来记录日志。示例如下: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class LogbackExampleApplication implements CommandLineRunner { private static final Logger logger = LoggerFactory.getLogger(LogbackExampleApplication.class); public static void main(String[] args) { SpringApplication.run(LogbackExampleApplication.class, args); } @Override public void run(String... args) throws Exception { logger.info("This is an info log message."); logger.error("This is an error log message."); } } ``` ### 4. 动态配置日志级别 可以通过 Spring Boot 的配置文件(如 `application.properties` 或 `application.yml`)动态配置日志级别。 #### application.properties ```properties logging.level.root=info logging.level.com.example=debug ``` #### application.yml ```yaml logging: level: root: info com.example: debug ``` 上述配置将根日志级别设置为 `info`,并将 `com.example` 包下的日志级别设置为 `debug`。 ### 5. 高级配置 可以根据不同的环境(如开发、测试、生产)使用不同的 Logback 配置。例如,在 `logback-spring.xml` 中可以使用 Spring Boot 的配置文件占位符: ```xml <springProfile name="dev"> <!-- 开发环境的配置 --> <root level="debug"> <appender-ref ref="CONSOLE"/> </root> </springProfile> <springProfile name="prod"> <!-- 生产环境的配置 --> <root level="info"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </root> </springProfile> ``` 上述配置根据不同的环境(`dev` 或 `prod`)使用不同的日志级别和 appender。 通过以上步骤,就可以在 Spring Boot 项目中使用 Logback 进行日志配置
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值