第五章 ,springboot 日志框架

第五章 ,springboot 日志框架第五章 ,springboot 日志框架

大家好,又见面了,我是你们的朋友全栈君。

一,选用SLF4j和logback

(注:spring框架默认使用的事JCL日志框架)

二,使用

1,如何在系统中使用slf4j(不同于log4j)

以后开发的时候,日志记录方法的调用,不应该直接调用日志的实现层,而是调用日志的抽象层里面的方法(也就是先biz层再dao层)

打开slf4j的首页,找到用户手册链接:

第五章 ,springboot 日志框架

有个案例,长下面这个样子:

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");
  }
}

slf4j是属于抽象层,logback是实现层。


二,这里我们新建个spring initializr 工程。

然后打开pom.xml 

对下图位置右键:

第五章 ,springboot 日志框架

选择–》Diagrams–》show Dependencies 会显示各jar包的依赖关系(alt可放大看)

其中可以看到springboot使用的日志系统:

第五章 ,springboot 日志框架

所以

1,springboot底层也是使用slf4j+logback的方式进行日志记录

2,springboot也把其他的日志都替换成了slf4j

3,如果要引入其他框架,一定要把这个框架的默认的日志依赖移除掉

 


三,日志种类和日志等级

1, 

package com.liuxin.springboot;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class Springboot03LoggingApplicationTests {
    Logger logger = LoggerFactory.getLogger(getClass());

    //日志级别又低到高:trace<debug<info<warn<error
    @Test
    public void contextLoads() {
        logger.trace("trace日志");
        logger.debug("debug日志");
        logger.info("info日志");
        logger.warn("warn日志");
        logger.error("error日志");
    }

}

springboot默认使用的是info级别的,也就是上面案例只会输出后面三行

2,如在配置文件中设置日志级别,就用设定的,没有设定就用默认的,如下:

第五章 ,springboot 日志框架

这样再次运行就能打印所有日志了。

3,指定日志输出的文件

第五章 ,springboot 日志框架

这样就能在当前项目下创建一个springboot.log文件。

4,在日志中的输出格式:

logging.level.com.liuxin=trace

#指定日志的输出目录,默认根目录
#logging.file=springboot.log
#指定本地盘
#logging.file=F:/springboot.log

#在当前磁盘的跟目录下创建spring文件夹和里面的log文件,使用spring.log作为默认,如果这个项目在c盘,那么这个就会出现C:/srping/log
logging.path=/spring/log 
#指定控制台输出的格式     下面等号右边的含义以此是 %d:日期  %thread:线程号   %-5level:日志级别从左显示5个字符  
# %logger{50}:logger名字最长50个字符,否则安装句号分割   %msg:消息信息 %n:换行符
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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/105996.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 海量数据存储技术与解决方案[通俗易懂]

    海量数据存储难点:数据量过大,数据中什么情况都可能存在;软硬件要求高,系统资源占用率高;要求很高的处理方法和技巧。海量数据存储处理经验:一、选用优秀的数据库工具    现在的数据库工具厂家比较多,对海量数据的处理对所使用的数据库工具要求比较高,一般使用Oracle或者DB2,微软公司最近发布的SQLServer2005性能也不错。另外在BI领域:数据库,数据仓库,多维数据库,数据挖

  • Myeclipse SVN插件使用

    Myeclipse SVN插件使用1.安装svn插件网络不好采用link方式安装也方便以后卸载,首先下载site-1.10.9.zip文件从中解压出features与plugins文件夹,复制到E:\MyEclipse\svn(该文件夹位置随意)里面在E:\MyEclipse\MyEclipse10.0\dropins(myeclipse安装位置)下新建文件svn.link,内容是:path=E:\\MyEclipse\\s

  • 基于python的电影推荐系统_复仇者联盟4终局之战纸牌

    基于python的电影推荐系统_复仇者联盟4终局之战纸牌喜欢看电影的朋友都知道,五一节之前上映了一部漫威号称十年布局的超级大片,据说老一代的英雄们有很多就要退出历史的舞台了,今天我们不是聊这一部电影的内容怎样,情节怎样,而是想基于爬虫来对豆瓣和猫眼电影两个网站中的影评数据进行采集,之后有时间的话会基于采集到的数据来进行文本分析。好了,其他的话就不多说了,详细的代码实现在之前的文章里面也已经给出来了,这里简单贴一下爬取到的数据…

  • piggycase_java状态机设计

    piggycase_java状态机设计一、实验目的练习使用动态规划算法解决实际问题(使用Java语言实现)二、实验内容【问题描述】给定一个空存钱罐的重量和这个存钱罐最多能装进去的重量,现在需要在不打破这个存钱罐的情况下猜测里面最少的钱。每种钱的数量不做限制,条件是必须装满,同时给出每种钱币的价值和重量。【输入】输入的第一行数据包含整数T,表示测试用例的数量。每个测试用例的第一行都包含两个整数e和f(1<=e<=f<=10000),分别表示空存钱罐和装满硬币的存钱罐的重量(以克记)。第二行包含一个整数n(1&

  • 谈谈电商秒杀高并发的处理

    谈谈电商秒杀高并发的处理众所周知现在连市场卖菜的大妈都快知道高并发了,哈哈,那么我们生活中是否接触过高并发呢。当然了哈哈,比如你给你女朋友抢秒杀的化妆品什么的了。秒杀最棘手的问题就是解决并发带来的问题。下面我们一起聊聊喽。首先我们来说下问题:秒杀高并发带来的最大问题,就是库存超卖。(如果你没看过我的文档,导致你写公司秒杀业务时库存超卖了,公司损失了,将你开除了,你会多么不开心,哈哈我来给你写稻草救救你)嘻嘻嘻嘻嘻…

  • HeartBleed漏洞详解与利用「建议收藏」

    HeartBleed漏洞详解与利用「建议收藏」看一下流传的Python利用脚本。#!/usr/bin/python#QuickanddirtydemonstrationofCVE-2014-0160byJaredStafford(jspenguin@jspenguin.org)#Theauthordisclaimscopyrighttothissourcecode.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号