日志框架
本节主要内容:
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因其简洁的配置和强大的依赖管理而成为Java开发者构建微服务的首选框架,而支付宝作为国内领先的支付平台,其网页支付接口被广泛应用在电商、服务类网站等多种场景。 首先,我们需要在SpringBoot项目中...
本项目“SpringBoot+Vue支付宝沙箱支付”旨在教你如何在SpringBoot后端与Vue前端环境中实现支付宝的沙箱测试环境支付功能,从而在不涉及真实交易的情况下测试支付流程的完整性和安全性。 首先,我们需要了解什么是...
微信APP支付-SpringBoot项目源码是一个典型的移动支付集成示例,主要展示了如何在SpringBoot应用中集成微信的APP支付功能。在这个项目中,开发者可以学习到如何与微信支付API进行交互,完成从订单创建、支付请求到...
- **自动配置**:SpringBoot通过`@EnableAutoConfiguration`注解,根据项目依赖自动配置相应的Bean,简化了配置文件。 - **内嵌Web服务器**:如Tomcat或Jetty,无需额外部署,方便开发和测试。 - **起步依赖...
本项目“paypal-springboot”旨在演示如何在Spring Boot应用中整合PayPal支付接口,实现安全、高效的跨境支付服务。下面我们将深入探讨相关的技术细节和知识点。 1. **Spring Boot简介** Spring Boot是Spring框架...
这是一个基于SpringBoot框架开发的支付系统,包含了支付宝支付、微信支付以及订单系统的重要功能,适合计算机专业学生作为毕业设计的参考项目。这个系统的实现涵盖了多种关键的IT知识点,以下是具体的详细解析: 1....
本项目“alipay支付Demo-springboot整合版”提供了一个集成支付宝接口的SpringBoot应用示例,帮助开发者快速理解和实现支付宝的沙箱环境测试。 首先,我们要理解SpringBoot的核心概念。SpringBoot是由Pivotal团队...
例如,SpringBoot会自动配置数据源、日志框架和Web服务器等,使得开发者可以快速启动一个新的项目。 点餐系统通常包含以下几个关键模块:用户管理、菜品管理、订单处理和支付系统。在SpringBoot中,我们可以利用...
在订单支付系统中,SpringBoot负责初始化和管理应用的各个组件,如数据库连接、日志、定时任务等。同时,它也提供了RESTful API的便捷实现,使系统对外提供服务。 接下来,Dubbo作为服务治理框架,其主要功能包括...
它预设了许多默认配置,使得开发者可以更快地启动项目。Spring Boot的核心特性包括自动配置、内嵌HTTP服务器(如Tomcat或Jetty)、健康检查端点和命令行界面。在本模板中,Spring Boot负责后端服务的构建,包括业务...
它默认配置了很多常见的功能,如日志、数据源、定时任务等,使得开发者可以快速创建独立运行的、生产级别的基于Spring的应用程序。 2. **Java**: 作为项目的编程语言,Java是一种广泛使用的面向对象的编程语言,...
"Java项目之springboot家具商城系统(源码)" 是一个基于Java技术栈,利用Spring Boot框架构建的电子商务应用,专门针对家具销售行业。此项目提供了完整的源代码,允许开发者深入研究其架构和实现细节,或者直接用于...
标题中的"springboot2.1项目有数据库哟.rar"表明这是一个基于Spring Boot 2.1版本的项目,其中包含了数据库相关的配置和应用。这个项目可能是一个综合性的后端服务,利用了Spring Boot的强大功能和简洁的开发体验。...
它预设了很多默认配置,如数据源、服务器端点、日志和自动配置等,开发者无需编写大量配置代码,可以更快地启动和运行应用程序。 二、SpringBoot在项目中的应用 1. 自动配置:SpringBoot的自动配置特性使得开发者...
该项目是Java开发者学习SpringBoot和电商系统开发的绝佳实践平台,通过实际操作,能深入理解SpringBoot的自动化配置、微服务理念以及电商系统的业务流程。在实践中不断探索,可以提升Java编程能力和对现代Web开发的...