首页 > 编程语言 >【Java】【SpringBoot】logback开发环境配置

【Java】【SpringBoot】logback开发环境配置

时间:2024-10-28 13:41:53浏览次数:5  
标签:文件 Java SpringBoot Logback 配置 日志 logback log

image

LogBack开发环境配置

Logback是一个开源的日志记录库,它是log4j的一个改进版本 。Logback被设计为易于使用,同时提供强大的日志管理功能。

1.添加依赖

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

<dependency>
	<groupId>ch.qos.logback</groupId>
	<artifactId>logback-classic</artifactId>
	<version>1.2.1</version>
</dependency>

2.创建Logback配置文件

在你的资源目录(通常是src/main/resources)中创建一个名为logback.xml的文件。这个文件将包含你的日志配置。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
        <root level="info">
            <appender-ref ref="STDOUT" />
        </root>
</configuration>

3.使用logback记录日志

在你的Java代码中,你可以通过导入logback的Logger类来记录日志。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@SpringBootTest
public class LogbackTest {
    private static final Logger log = LoggerFactory.getLogger(LogbackTest.class);

    /**
     * 测试log4J的使用
     * @author lyj
     * @date 2024-10-28
     */
    @Test
    public void test(){
        log.error("hello, Logback!");
    }
}

4.运行你的应用程序

image

logback高级特性

1. 配置多个Appender

你可以配置多个Appender,以便将日志输出到不同的目的地,比如控制台、文件、远程服务器等。 这里配置的文件路径为,当前项目的logs文件夹下。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 日志存放路径 -->
    <property name="log_path" value="./logs" />

    <!--  输出到控制台-->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <!--输出到文件-->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log_path}/logFile.log</file>
        <encoder>
            <pattern>${log_path}/%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log_path}/logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
    </appender>
    <root level="info">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>
</configuration>

打开logs日志。可以看到输出已经写logFile.log文件下:

image

2. 日志级别的控制

Logback支持TRACE, DEBUG, INFO, WARN, ERROR和FATAL等日志级别。你可以在配置文件中为不同的Logger设置不同的日志级别,以便控制日志的详细程度。

<root level="info">
        <appender-ref ref="STDOUT" />
    </root>
    <root level="DEBUG">
        <appender-ref ref="FILE"></appender-ref>
    </root>

3. 异步日志记录

对于需要高性能日志记录的应用程序,Logback提供了异步Appender。使用异步Appender可以减少日志记录对应用程序性能的影响。

 <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
	<queueSize>512</queueSize>
	<discardingThreshold>0</discardingThreshold>
	<appender-ref ref="STDOUT" />
</appender>
 <root level="info">
	<appender-ref ref="file_info" />
	<appender-ref ref="file_error" />
</root>

在这个例子中,所有的日志都会先被发送到异步Appender的队列中,然后由一个单独的线程从队列中取出并处理(即发送到控制台)。

4. 日志格式的自定义

Logback允许你自定义日志消息的格式,以满足特定的格式化需求。你可以通过修改encoder部分的pattern属性来实现这一点。例如,如果你希望在日志中包含线程名称和类名,你可以这样配置:

<encoder>
	<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>

5. 日志文件的压缩和清理

随着时间的推移,日志文件会不断增长,可能会占用大量的磁盘空间。Logback的TimeBasedRollingPolicy已经提供了一种按日期分割日志文件的机制,但你还可以进一步配置日志文件的压缩和清理策略。

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
	<fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
	<maxHistory>30</maxHistory> <!-- 保留最近30天的日志文件 -->
	<totalSizeCap>3GB</totalSizeCap> <!-- 最多保留3GB的日志数据 -->
</rollingPolicy>

在这个配置中,maxHistory属性指定了保留日志文件的最大天数,而totalSizeCap属性则限制了日志文件的总大小。一旦达到这些限制,旧的日志文件将被自动删除或压缩,从而帮助你管理磁盘空间。

6. 日志的归档

有时候,你可能希望将日志文件归档到一个单独的目录中,以便于备份和管理。你可以通过配置rollingPolicy来实现这一点:

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
	<fileNamePattern>/var/log/myapp/archive/logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
	<maxHistory>30</maxHistory>
</rollingPolicy>

在这个例子中,日志文件将被归档到/var/log/myapp/archive/目录下。你可以根据实际需要调整归档路径。
通过这些高级配置,你可以进一步优化Logback的使用,以满足复杂和特定的日志记录需求。灵活地运用这些技巧,可以帮助你更好地管理和分析应用程序的日志数据。

标签:文件,Java,SpringBoot,Logback,配置,日志,logback,log
From: https://www.cnblogs.com/luyj00436/p/18510376

相关文章

  • Java为什么不使用多继承?
    Java不使用多继承是为了:一、避免菱形继承问题;二、简化代码和维护;三、引入接口实现多继承功能;四、遵循设计原则。避免菱形继承问题可以使代码更加稳健可靠,降低了开发复杂度,从而便于团队协作和维护。一、避免菱形继承问题多继承意味着一个类可以从多个父类继承属性和方法。虽然......
  • 一文带你搞懂Java字符串
    1.API1.1API概述什么是API?API(ApplicationProgrammingInterface)是应用程序编程接口,它是一组工具、类、方法和规则,使不同的应用程序可以通过接口进行数据交互和操作。API的作用主要是:封装复杂性:提供简单的接口供开发者调用,不需要关心底层实现的细节。提高复用......
  • web前端期末大作业:基于HTML+CSS+JavaScript制作我的音乐网站(带设计报告)
    ......
  • web前端网页课程设计大作业 html+css+javascript天津旅游(11页) dw静态旅游网页设计实
    ......
  • springcloud分布式微服务 java高速公路收费管理系统
    目录课题介绍具体实现截图开发核心技术:开发工具开发技术SpringCloudEureka详细视频演示核心代码部分展示系统设计需求分析可行性论证源码获取课题介绍根据高速公路收费管理系统的系统分析结果,整个系统包括以下各个单元:管理员,用户,收费站,交通流量,车道信息,通知通知公......
  • Java基础:多态
    目录一、认识多态1、什么是多态?2、多态的具体代码体现3、多态的前提4、多态的一个注意事项二、多态的好处1、使用多态的好处2、多态下产生的一个问题三、多态下的类型转换1、类型转换有几种形式?能解决什么问题?2、强制类型转换需要注意什么?3、强制类型转换前,Java建......
  • java计算机毕业设计程序员专属社交交友平台的设计于实现(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着信息技术的高速发展,程序员在各个领域都发挥着极为关键的作用。他们是技术创新的核心力量,然而,在社交方面,现有的传统社交平台虽然种类繁多,但难......
  • SpringBoot面向专利知识产权的电子交易模式9nvio 程序+源码+数据库+调试部署+开发环境
    开题报告内容课题名称:SpringBoot面向专利知识产权的电子交易模式9nvio一、课题背景及意义随着全球科技创新的加速和知识产权保护意识的提升,专利知识产权已成为企业核心竞争力的关键要素。然而,传统的专利交易方式存在信息不对称、交易成本高、市场不透明等问题,制约了知识产权......
  • 【Java】类和对象
    目录1.面向对象的初步认知1.1什么是面向对象1.2面向对象与面向过程2.类定义和使用2.1简单认识类2.2类的定义格式2.3练习 2.3.1定义一个dog类 2.3.2定义一个学生类3.类的实例化3.1什么是实例化3.2类和对象的说明4.this引用4.1为什么要有this引用......
  • 基于Springboot音乐翻唱与分享平台【附源码+文档】
    ......