springboot 日志

  1. 日志作用

    方便开发人员调试,记录程序的运行情况,也可以用来快速定位错误,及时排错。
    
  2. 日志等级

    log4j定义了8个等级,优先级从高到低依次为:OFF、FATAL、ERROR、
    WARN、INFO、DEBUG、TRACE、ALL
    
    *但是log4j只建议使用四个级别:ERROR、WARN、INFO、DEBUG
    
    	ERROR:ERROR level指出程序的错误事件,但不会影响程序的运行
    	WARN:WARN level表明出现潜在的错误情形
    	INFO:INFO level粗粒度级别上强调程序的运行过程,打印一些感兴趣
    	      的或者重要的信息
    	DEBUG:DEBUG level细粒度级别主要用来调试程序,开发过程
    		  中打印一些运行信息
    
     *优先级越高输出的越少,优先级越低输出的越多
    	DEBUG

springboot 日志_第1张图片

随便启动一个springboot项目,观察日志信息,可以发现日志等级是INFO。
强调程序的运行过程

注意

springboot默认使用的日志框架是SLF4J结合LogBack
SLF4J是日志门面,一个抽象接口层,LogBack才是具体的实现
![在这里插入图片描述](http://www.slf4j.org/images/concrete-bindings.png)
所以在开发过程中,要调用日志记录方法时不能直接调用日志的实现类,
而应该调用日志抽象层里面的方法

入门使用

1.先导入slf4j的jar和logBack的jar,因为springboot-boot-start里面
	默认帮我们导入了,所以我们直接可以用
	下面是slf4j官方文档里面给的入门案例

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {
  public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger(HelloWorld.class);
    logger.info("Hello World");
  }
}


springboot 日志_第2张图片

*虽然日志门面抽象层用的是slf4j,每个实现类都应该使用自己的配置文件
在开发项目过程中,会引入各种各样的框架,很多框架里面都有自己的日志jar包,
例如Spring(commons-logging),Hibernate(jboss-logging),springboot
是怎样做到统一的
1.将引入系统中的其他的日志框架先排除出去
2.用一个专门的中间转化包替换原有的日志框架
3.导出slf4j的实现

springboot 日志_第3张图片

我们可以在springboot配置文件application.yml里面对日志的一些常见设置进行修改
#指定日志级别

logging:
  level:
    #root相当于默认级别设置
    root: info
    #指定特定包或者类下面的日志级别
    com:
      xp:
        blog: warn



  #设置日志输出文件位置
  file:
      path: /springbootlog/log


  #指定输出日志的格式

  # %d{yyyy/MM/dd-HH:mm:ss}——日志输出时间
  # %thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用
  # %-5level——日志级别,并且使用5个字符靠左对齐
  # %logger——日志输出者的名字
  # %msg——日志消息
  # %n——平台的换行符
  pattern:

    #控制台的输出格式
    console:  "%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n"
    #文件里面的输出格式
    file: "%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n"

springboot 日志_第4张图片
springboot 日志_第5张图片

*如果需要更高级的设置,就需要用到官方文档所给的上图红色标记的xml文件了
如果项目中配置了logback.xml文件,yml里面的就不会生效了,
springboot会直接读取logback.xml的内容



    
    myBlogAppName


    
    


    
    

        
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
        

    


    
    
        

            
            ${log_path}/TestWeb.log.%d{yyyy-MM-dd}.log

            
            30

        

        
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
        
        
        

            
            10MB

        
    

    
    
        
        
    

   
    
        
    
    
    
        
    

你可能感兴趣的:(java)