首页 > 其他分享 >SpringBoot(11) -- Logging

SpringBoot(11) -- Logging

时间:2023-05-17 23:36:58浏览次数:33  
标签:11 Logging -- class logging org import 日志 logger

SpringBoot默认使用的日志框架是logback,所以引入Web依赖后直接使用Logger.

引入SpringBoot的Web 依赖

 <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
  </dependency> 

demo的目录结构

 通过application.properties就可以简单配置logging

# 默认日志级别是info,指定要输入日志的类/包
logging.level.com.mike.study.springbootlogging.a.LoggingA = debug
logging.level.com.mike.study.springbootlogging.b.LoggingB = debug
# 指定日志输出文件
#logging.file.name=d:/logs/my.log
# 指定日志输出路径
logging.file.path=E:/tmp/logs
# 指定控制台日志输出格式
#logging.pattern.console=%d{HH:mm:ss.SSS} [boot-logging] [%t] %-5level %logger{36} - %msg%n
# 指定日志文件输出格式
#logging.pattern.file= %d{HH:mm:ss.SSS} [boot-logging] [%t] %-5level %logger{36} - %msg%n

  创建2个简单的测试类LoggingA.java和LoggingB.java

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

/**
 * @Classname LoggingA
 * @Created by Michael
 * @Date 2023/5/17
 * @Description 测试log
 */
@Component
public class LoggingA {
  private Logger logger = LoggerFactory.getLogger(LoggingA.class);

  public void testLogger(){
    logger.trace("Trace 日志");
    logger.debug("Debug 日志");
    logger.info("Info 日志");
    logger.warn("Warn 日志");
    logger.error("Error 日志");
  }

  

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

/**
 * @Classname LoggingB
 * @Created by Michael
 * @Date 2023/5/17
 * @Description 测试日志
 */

@Component
public class LoggingB {
  private Logger logger = LoggerFactory.getLogger(LoggingB.class);

  public void testLogger(){
    logger.trace("Trace 日志");
    logger.debug("Debug 日志");
    logger.info("Info 日志");
    logger.warn("Warn 日志");
    logger.error("Error 日志");
  }
}  

调用测试方法,查看输入

import com.example.bootlogging.a.TestLogger;
import com.example.bootlogging.b.TestLogger1;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class BootLoggingApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext
                context = SpringApplication.run(BootLoggingApplication.class, args);
        TestLogger logger = context.getBean(TestLogger.class);
        logger.testLog();

        TestLogger1 logger1 = context.getBean(TestLogger1.class);
        logger1.testLog();

        context.close();
    }
}

  控制台输入结果:

 注意,值得一提的是LoggingB.java设置的日志级别是info,所以它的debug日志是不被输出的。

同样,还可以使用其他日志框架,比如l4j2,只需排除默认的logback依赖,同时引入

 

升级版,通常项目会使用一个专门的日志设置文件来定制日志。

新建logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
  <!-- 控制台输出 -->
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [springboot-logging] [%thread] %-5level %logger{50} - %msg%n</pattern>
    </encoder>
  </appender>

  <!-- 日志输出级别 -->
  <root level="warn">
    <appender-ref ref="STDOUT"/>
  </root>
</configuration>

  同时的源码,添加xml配置文件后输出结果

 注意:logback-spring.xml配置是高优先与applic.properties

 此外还可以使用其他的日志框架,比如log4j2,只需配置logback依赖,同时引入log4j2的依赖,最后添加log4j2-spring.xml配置文件,即可使用该日志框架。

标签:11,Logging,--,class,logging,org,import,日志,logger
From: https://www.cnblogs.com/lfhappy/p/17410660.html

相关文章

  • BLOG-2
    一、**前言**本次Java大作业是一次非常有意义的学习经历,我们学习了Java中的继承与多态,抽象类与接口,正则表达式,时间类Calendar等知识点,并将它们应用于实际编程中。通过这次大作业,我们不仅巩固了Java基础知识,还学会了如何将这些知识点结合起来进行实际应用。二、**设计与分析**1......
  • 循环语法备忘
    平时用的比较少,一直记不起来的,对应c#中的dowhilelocali=1locallen=10repeat--dosomethingi=i+1untili<=len for是最常用的locallen=10fori=1,lendo--dosomethingendlocalstep=2fori=1,len,stepdo--dosomethinge......
  • 原来.NET写的Linux桌面这么好看?
    如何使用Blazor在Linux平台下运行Desktop程序本文将讲解如何使用Blazor运行跨平台应用,应用到的技术有以下几点BlazorMasaBlazorPhotino.BlazorUbuntu用于验证跨平台性,并且是否提高开发效率,Blazor和Photino一块使用的技术称为BlazorHybrid,Blazor的优点Blazor是一种使用......
  • 【安全学习之路】Day2
    ......
  • 解决xorm逆向工程问题
    解决xorm逆向工程问题问题xorm:无法将“xorm”项识别为cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。今天在用xorm做逆向工程的时候碰到了一个普遍问题,xorm:无法将“xorm”项识别为cmdlet、函数、脚本文件或可......
  • 基于爬山优化算法的三维曲面极值搜索matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:   2.算法涉及理论知识概要       爬山法是一种优化算法,其一般从一个随机的解开始,然后逐步找到一个最优解(局部最优)。假定所求问题有多个参数,我们在通过爬山法逐步获得最优解的过程中可以依次分别将某个参数的值增加或者......
  • 实验十三 16×16 LED点阵显示实验
    实验十三16×16LED点阵显示实验实验目的1、了解16×16矩阵LED显示的基本原理和功能。2、掌握16×16矩阵LED和单片机的硬件接口和软件设计方法。实验说明汉字显示屏广泛应用与汽车报站器,广告屏等。实验介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,采用了16×16的......
  • 不同原型设计工具的对比以及使用心得
    一.原型简介在做工业产品设计时设计师会建立一系列的模型来对设计进行一系列测试。而原型(prototype)则相当于数字产品的模型,也可以叫产品的demo版。按照保真程度分,原型可以笼统地分为低保真原型和高保真原型。 任何低保真原型都具有以下特点:在早期检测和修......
  • AI 绘画 - 如何 0 成本在线体验 AI 绘画的魅力
    要想体验AI绘画,比较流行的三种方式是Midjourney、OpenAI的DALL·E2以及StableDiffusion。而Midjourney已经停止免费试用,且使用价格不太便宜,DALL·E2也是一样价格不菲。只有StableDiffusion作为一款开源模型可以自建,也有各种白嫖的方式比如Google的Colab,阿里云......
  • 数字通信调制方式的误码率matlab仿真,包括OOK,PRK,FSK以及QAM
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要      传输模拟信号时一样,传输数字信号时也有三种基本的调制方式:幅移键控(ASK)、频移键控(FSK)和相移键控(PSK)。它们分别对应于用载波(正弦波)的幅度、频率和相位来传递数字基带信号,可以看成是模拟线性调......