日志框架

本节主要内容:

1:常见的几种日志框架

2:Logback的使用

3:怎么配置info和error级别日志到不同文件中并且按照日期每天一个文件。

以上几个框架可以分类如下:

SLF4J和Logback的使用

日志级别:

级别越大越严重。

一:Java类中使用日志两种方式:

方式一:在每个类中添加日志对象:

private  final Logger logger = LoggerFactory.getLogger(LoggerTest.class);

方法二:使用lombok插件:

在pom.xml文件中添加lombok依赖:

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<optional>true</optional>

</dependency>

然后再类上面使用@slf4j注解

推荐使用第二种,注解方式。这样就不用再每个类中添加了。

二:变量的打印

方式一:使用字符串+的方式。

直接使用字符串+的。如果变量多,+就需要很多了。

方式二:使用占位符的方式。

两个运行的结果:

推荐使用第二种,这样一看及明白。

Logback的配置

两种配置方式:

application.yml和logback-spring.xml

也就是一种基于yml文件一种基于xml文件配置的

来看下项目中经常遇到的日志需求:

区分info和error日志;每天产生一个日志文件。

方式一:再yml文件中配置

我们可以看到,logging相关配置还很多的。如console打印的日志格式、日期格式、文件、日志级别、日志最大大小等等。都可以配置的。

如:我们配置在控制台输出时间-信息换行。这个怎么配置呢?

查看运行结果:

配置日志输出位置:

运行后,可以在C盘下看到一个aa文件夹,打开就是日志文件了。如下图:

默认日志文件名称是spring.log。如果想修改成自己的可以使用file。如下图

运行后:

修改日志级别:

日志级别还可以绑定到指定的类上面。如:

第二种方式:使用xml文件配置

1:控制台输出:

2:根据不同日志级别输出到不同日志文件中。文件名带上日期

可以看到,文件滚动方式有很多,可以安装大小和时间、可以按照时间的。如下图:

配置后文件如下:

基于XML配置的所有配置信息:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<!-- 控制台输入日志格式配置-->

<appender name="consolelogg" class="ch.qos.logback.core.ConsoleAppender">

<layout class="ch.qos.logback.classic.PatternLayout">

<pattern>

%d -%msg%n

</pattern>

</layout>

</appender>

<!-- info日志 每天一个日志文件配置-->

<appender name="infoFileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

<filter class="ch.qos.logback.classic.filter.LevelFilter">

<level>ERROR</level>

<onMatch>DENY</onMatch>

<onMismatch>ACCEPT</onMismatch>

</filter>

<encoder>

<pattern>

%msg%n

</pattern>

</encoder>

<!-- 配置日志滚动策略-->

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<!-- 文件路径.文件名称中带有日期-->

<fileNamePattern>c:/aa/info.%d.log</fileNamePattern>

</rollingPolicy>

</appender>

<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

<filter class="ch.qos.logback.classic.filter.ThresholdFilter">

<level>ERROR</level>

</filter>

<encoder>

<pattern>

%msg%n

</pattern>

</encoder>

<!--滚动策略-->

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<!--路径-->

<fileNamePattern>c:/aa/error.%d.log</fileNamePattern>

</rollingPolicy>

</appender>

<root level="info">

<appender-ref ref="consolelogg"/>

<appender-ref ref="infoFileLog"/>

<appender-ref ref="fileErrorLog"/>

</root>

</configuration>

各位有什么更好的日志框架介绍下呗

springboot支付项目之日志配置的更多相关文章

  1. SpringBoot整合log4j2进行日志配置及防坑指南

    写在前面 最近项目经理要求将原先项目中的日志配置logBack,修改为log4j2,据说是log4j2性能更优于logback,具体快多少,网上有说快10多倍,看来还是很快的,于是新的一波挑战又开始了 ...

  2. springboot支付项目之springboot集成jpa

    springboot集成spring-jpa 本文主要内容: 1:spring boot怎么集成spring-jpa以及第一个jpa查询示例 如jpa几个常用注解.lombok注解使用 2:怎么设置i ...

  3. springboot超级详细的日志配置(基于logback)

    前言   java web 下有好几种日志框架,比如:logback,log4j,log4j2(slj4f 并不是一种日志框架,它相当于定义了规范,实现了这个规范的日志框架就能够用 slj4f 调用) ...

  4. Spring Boot 日志配置

    Spring Boot 日志配置 默认日志 Logback: 默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台.在运行应用程序和其他例子时,你应该已经看到很 ...

  5. springboot 入门六-多环境日志配置

    在应用项目开发阶段,需要对日志进入很详细的输出便于排查问题原因,上线发布之后又只需要输出核心的日志信息的场景.springboot也提供多环境的日志配置.使用springProfile属性来标识使用那 ...

  6. springboot日志配置

    默认情况下,spring boot使用的是LogBack日志系统.在spring-boot-starter-web和spring-boot-starter中都已经默认依赖了logging的工具包. 如 ...

  7. (转)Springboot日志配置(超详细,推荐)

    Spring Boot-日志配置(超详细) 更新日志: 20170810 更新通过 application.yml传递参数到 logback 中. Spring Boot-日志配置超详细 默认日志 L ...

  8. SpringBoot整合+logback日志配置

    本次演示的代码结构如下,基于maven,整合SpringBoot.Spring.Mybaits的SSM框架.同时测试logback日志框架的使用及配置. 1.创建maven工程,修改pom.xml文件 ...

  9. springboot深入学习(一)-----springboot核心、配置文件加载、日志配置

    一.@SpringBootApplication @SpringBootApplication是spring boot的核心注解,源码如下: 相当于:@Configuration+@EnableAut ...

随机推荐

  1. Centos7 死循环登录问题

    问题:用户名和密码输入正确,登录后屏幕闪一下又回到初始的登录界面.不知道具体什么原因引起的,先记录下不知道是否正确的解决方案,网上找了些相关的方案有的也实现不了,可能这个问题跟装的虚拟机的版本也有关系 ...

  2. SpringCloud学习之Stream消息驱动【自定义通道】(十一)

    如果不清楚本篇内容的,请务必先去看完上一篇再看本篇,否则阅读起来可能会有部分障碍和困难: 上一篇文章<SpringCloud学习之Stream消息驱动[默认通道](十)>我们简单用自定义通 ...

  3. C++逐词读取txt

    这一篇来写下std::ifstream读取txt的另一种方式,逐词读取,上一篇是按行读取,逐词读取的话每个单词都以空格或者换行等符号间隔开. 代码如下: #include "stdafx.h ...

  4. python进阶(三)~~~装饰器和闭包

    一.闭包 满足条件: 1. 函数内嵌套一个函数: 2.外层函数的返回值是内层函数的函数名: 3.内层嵌套函数对外部作用域有一个非全局变量的引用: def func(): print("=== ...

  5. Linux 文件上传

    Linux 文件上传操作 SecureCRT与linux互相上传和下载文件 1. 需要上传或者下载,需要使用rz和sz命令. 2. 如果linux上没有这两个命令工具,则需要先安装.可以使用yum安装 ...

  6. Kali桥接模式下配置动态ip

    以管理员身份运行虚拟机 打开 控制面板-->网络和Internet-->更改适配器 在虚拟机处桥接到这个WLAN2 点击 编辑-->编辑虚拟网卡 没有网卡就点上图的添加网络作为桥接网 ...

  7. DOCKER 学习笔记6 WINDOWS版尝鲜

    前言 经过前两节的学习,我们已经可以在Dokcer 环境下部署基本的主流环境有: Springboot 后端 MYSQL 持久化数据 以及Nginx 作为反向代理 虽说服务器上面的也没啥不好,但是毕竟 ...

  8. 用eclipse运行算法第四版的BinarySearch

    import java.util.Arrays; import edu.princeton.cs.algs4.In; import edu.princeton.cs.algs4.StdIn; impo ...

  9. Spring Cloud Alibaba 教程 | Nacos(二)

    源码解析客户端注册过程 nacos作为注册中心,包含了nacos服务端(注册中心服务)和nacos客户端,nacos注册中心服务上面一讲已经介绍过了它是一个用Java语言编写开源web项目,并且拥有自 ...

  10. Oracle与MySQL的区别对比

    本文对数据库Oracle与MySQL进行了区别对比,其中从并发性.一致性.事务.数据持久性等十三方面进行了对比. 本文摘自 51cto 一.并发性 并发性是oltp数据库最重要的特性,但并发涉及到资源 ...