码迷,mamicode.com
首页 > 编程语言 > 详细

SpringBoot与日志框架1

时间:2019-04-26 00:15:13      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:项目   stat   art   string   ons   输出   deb   factory   理解   

一、日志框架

1.无论在什么系统,日志框架都是一个重要角色,所以理解和用好日志框架是相当重要的;像JDBC一样,日志框架分为接口层的门面和具体的实现组成。

2.市面上的产品:

2.1门面:SLF4J(Simple Loggin Facade for Java)、JCL(Jakarta Common Loggin)、jboss-logging

2.2具体实现:Log4j->Logback、Log4j2、JUL(java.util.loging)

其中SLF4J、Log4j->Logback都是出自同一个作者,兼容自然是最好,Logback可以说是Log4j的升级版,而Apache的Log4j2兼容性并不友好(需要引入中间层),其它产品几乎是很少用了,

所以现在SLF4J+Logback是主流组合,Springboot正是默认是使用了这套日志框架(spring底层默认使用JCL+Log4J)。

二、springboot使用日志框架

创建springboot项目时自动帮我们引入了SLF4J+Logback,使用起来非常简单,小试牛刀:


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


import com.example.log.DefLoggin;


@SpringBootApplication
public class SpringBootPropertiesApplication {

  public static void main(String[] args) {
    SpringApplication.run(SpringBootPropertiesApplication.class, args);
    Logger logger = LoggerFactory.getLogger(DefLoggin.class);
    logger.trace("1.追踪");
    logger.debug("2.调试");
    logger.info("3.信息");
    logger.warn("4。警告");
    logger.error("5.错误");
  }

}

输出(默认知道INFO级别):

2019-04-25 22:32:34.611 INFO 6696 --- [ main] c.e.d.SpringBootPropertiesApplication : 3.信息
2019-04-25 22:32:34.612 WARN 6696 --- [ main] c.e.d.SpringBootPropertiesApplication : 4。警告
2019-04-25 22:32:34.612 ERROR 6696 --- [ main] c.e.d.SpringBootPropertiesApplication : 5.错误

日志输出级别:

  • Log Level: ERRORWARNINFODEBUG, or TRACE.(官方文档)

当然我们可以通过配置文件控制输出级别以及更多其它常用设置。

三、日志框架常用配置

#logging.level.com.example.demo=ERROR
#logging.path=
# 不指定路径在当前项目下生成springboot.log日志
# 可以指定完整的路径;
#logging.file=G:/springboot.log

# 在当前磁盘的根路径下创建spring文件夹和里面的log文件夹;使用 spring.log 作为默认文件
logging.path=/spring/log

#  在控制台输出的日志的格式
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
# 指定文件中日志输出的格式
logging.pattern.file=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} ==== %msg%n
logging.filelogging.pathExampleDescription
(none) (none)   只在控制台输出
指定文件名 (none) my.log 输出日志到my.log文件
(none) 指定目录 /var/log 输出到指定目录的 spring.log 文件中

四、日志框架的配置文件

一般我们会自定配置文件,覆盖默认文件的部分属性。

Logging SystemCustomization
Logback logback-spring.xml, logback-spring.groovy, logback.xml or logback.groovy
Log4j2 log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging) logging.properties

1.logback.xml,对应logback框架默认配置文件名,直接被日志框架识别使用;

2.logback-spring.xml,先由springboot加载解析,再给日志框架使用,可使用高级功能Profile

<layout class="ch.qos.logback.classic.PatternLayout">
            <springProfile name="dev">
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ----> [%thread] ---> %-5level %logger{50} - %msg%n</pattern>
            </springProfile>
            <springProfile name="!dev">
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ==== [%thread] ==== %-5level %logger{50} - %msg%n</pattern>
            </springProfile>
</layout>

在主配置文件application.properties中

spring.profiles.active=dev控制使用哪个格式。

 

SpringBoot与日志框架1

标签:项目   stat   art   string   ons   输出   deb   factory   理解   

原文地址:https://www.cnblogs.com/Oven1993/p/10771701.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!