springboot打印操作日志

添加了Lombok和logback依赖


    org.projectlombok
    lombok
    true


    ch.qos.logback
    logback-classic
    1.2.3

 

接下来,在您的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文件示例:




    
    
        
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
        
    

    
    
        logs/application.log
        
            logs/application.%d{yyyy-MM-dd}.log
            7
        
        
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
        
    

    
    
        
        
    

    
    


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

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

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

或者使用yml配置

logging:
  file:
    path: /path/to/logfile.log
    # 滚动策略
    rolling:
      policy: time_based
      # 时间滚动策略
      time_based:
        file_name_pattern: /path/to/logfile.%d{yyyy-MM-dd}.log.gz
        max_history: 7
    # 清理策略
    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级别打印日志,分别用来记录方法的开始和结束信息,以及方法执行过程中出现的异常信息。通过打印这些日志,我们可以更好地了解方法的执行情况,以及定位和解决问题。

你可能感兴趣的:(java,spring,boot,java,后端)