springboot日志管理 - Go语言中文社区

springboot日志管理


文章参考

  1. Spring Boot 日志配置方法
  2. @Slf4j注解实现日志输出
  3. eclipse环境下:lombok安装及使用

在这里插入图片描述

springboot配置日志

默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。

springboot默认已经配置了日志的信息,在pom.xml中的加载路径是

spring-boot-starter-web 》 spring-boot-starter 》spring-boot-starter-logging 》logback-classic

因此,不需要额外再引入日志依赖jar包

案例一(在每个Controller中获取日志对象)

package com.hb.firstStudy.controller;

import com.hb.config.DataBaseConfig;
import com.hb.config.DevConfig;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

/**
 * @RestController 表明控制器返回的值是一个 JSON字符串,所以不会去找到对应的JSP页面
 * @author 黄彪
 * 2018年9月6日
 */
@RestController
@RequestMapping("/customer")

public class CustomerController {
	// 获取src/main/resources/application.properties 文件中的信息
	@Value("${spring.datasource.username}")
	private String mysqlPwd;
	
	private Logger log = LoggerFactory.getLogger(this.getClass());
	
    @RequestMapping("/test")
    public String testCustomerRqest(){
    	System.out.println(dataBaseConfig.getName());
    	System.out.println(devConfig.getName());
    	log.error("test log function");
        return "testCustomerRqest : " + mysqlPwd;
    }

}

备注说明:所有的类中添加private Logger log = LoggerFactory.getLogger(this.getClass());就能获取日志对象,但是如果每个都这么添加,还是比较麻烦的,最好是在一处添加即可

案例二

每次写新的类,就需要重新写logger ;有简单的方式,就是使用@Slf4j注解

首先是在pom中引入:

<!--可以引入日志 @Slf4j注解-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>
package com.hb.firstStudy.controller;

import lombok.extern.slf4j.Slf4j;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

/**
 * @RestController 表明控制器返回的值是一个 JSON字符串,所以不会去找到对应的JSP页面
 * @author 黄彪
 * 2018年9月6日
 */
@RestController
@RequestMapping("/customer")
@Slf4j
public class CustomerController {
	// 获取src/main/resources/application.properties 文件中的信息
	@Value("${spring.datasource.username}")
	private String mysqlPwd;
	
    @RequestMapping("/test")
    public String testCustomerRqest(){
    	System.out.println(dataBaseConfig.getName());
    	System.out.println(devConfig.getName());
    	log.error("test log function");
        return "testCustomerRqest : " + mysqlPwd;
    }

}

如何解决编译器找不到log变量的问题?

如果注解@Slf4j注入后找不到变量log,需要IDEA安装lombok插件,

File → settings → Plugins

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/hbiao68/article/details/87515800
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢