springboot打印操作日志

添加了Lombok和logback依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>
 

接下来,在您的Spring Boot应用程序中,您可以使用Lombok提供的@Slf4j注解来自动生成日志记录变量,例如:

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Slf4j
public class UserController {
    @GetMapping("/user")
    public String getUser() {
        log.debug("Request to get user information.");
        // your logic here
        return "User";
    }
}
 

在这个例子中,我们使用了@Slf4j注解来自动生成一个log变量,用于日志记录。然后,在getUser()方法中,我们使用log.debug()方法来记录一条调试级别的日志消息。

接下来,我们将配置logback来将日志记录持久化到文件中。在src/main/resources目录下,创建一个名为logback.xml的文件:

常见配置选项的完整logback.xml文件示例:

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

    <!-- 控制台输出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 日志文件输出 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/application.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logs/application.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>7</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- root日志配置 -->
    <root level="info">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>

    <!-- com.example包日志配置 -->
    <logger name="com.example" level="debug"/>

</configuration>

在此示例中,我们定义了两个附录器:CONSOLEFILECONSOLE附加程序将日志记录输出到控制台,而FILE附加程序将日志记录输出到启动应用程序时指定的文件中。

我们还定义了两个不同的日志记录配置:rootcom.exampleroot配置将应用于所有日志记录,而com.example配置将仅应用于名为com.example的logger。

我们使用&lt;rollingPolicy>标记来指定日志文件滚动策略。在此示例中,我们使用TimeBasedRollingPolicy,它根据时间来滚动日志文件。fileNamePattern属性指定生成的日志文件的名称格式。在此示例中,我们使用了每天一个日志文件,并最多保留了7天的历史日志记录。

或者使用yml配置

logging:
  file:
    name: E:/log/logfile.log
    # 清理策略
    cleanup:
      policy: time_based
      # 按天数清理
      time_based:
        max_age: 7
  level:
    root: info
    com.example.mypackage: debug
  pattern:
    console: "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
    file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"

日志是用来帮助开发者在程序中定位问题和调试的工具,因此一般来说我们会在以下情况下打印日志:

  1. 在程序出现异常或错误时,用来记录错误信息和堆栈信息,方便定位和解决问题。

  2. 在程序执行过程中需要输出一些调试信息或运行状态信息时,用来帮助开发者了解程序的运行情况。

  3. 在程序中需要进行性能分析时,用来记录程序的执行时间和资源消耗情况,方便进行优化和改进。

以下是一个简单的打印日志的例子:

public class MyService {

    private static final Logger LOGGER = LoggerFactory.getLogger(MyService.class);

    public void doSomething() {

        LOGGER.debug("Starting doSomething method.");

        try {
            // do some work
        } catch (Exception e) {
            LOGGER.error("An error occurred while doing something.", e);
        }

        LOGGER.debug("Finished doSomething method.");
    }
}

在上面的例子中,我们使用了logback框架打印日志。在doSomething方法中,我们分别使用了debug和error级别打印日志,分别用来记录方法的开始和结束信息,以及方法执行过程中出现的异常信息。通过打印这些日志,我们可以更好地了解方法的执行情况,以及定位和解决问题。

猜你喜欢

转载自blog.csdn.net/qq_56921846/article/details/132858164
今日推荐