在Spring Cloud架构下使用Spring Boot的Logback日志处理方案

这篇具有很好参考价值的文章主要介绍了在Spring Cloud架构下使用Spring Boot的Logback日志处理方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Spring Cloud架构下使用Spring Boot的Logback日志处理方案,可以按照以下步骤进行:

1.引入logback依赖

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

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

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

2.配置logback.xml文件

在src/main/resources目录下创建logback.xml文件,并添加以下配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="LOG_HOME" value="/path/to/logs"/>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd 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_HOME}/app.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/app.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="com.example" level="DEBUG">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </logger>

    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
</configuration>

其中,LOG_HOME为日志文件输出路径,可以根据需要进行修改。

3.logback.xml是Logback框架的配置文件,用于配置日志的输出格式、输出位置、日志级别等信息。

下面是logback.xml配置文件的主要内容:

3.1 配置输出位置

<property name="LOG_HOME" value="/path/to/logs"/>

3.2 配置输出格式

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

定义了日志输出的格式,包括时间、线程、日志级别、类名、日志信息等。

3.3 配置输出方式

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d{yyyy-MM-dd 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_HOME}/app.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_HOME}/app.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

定义了日志输出的方式,包括控制台输出和文件输出。其中,文件输出使用了滚动策略,即以时间为基准,每天生成一个

4.在应用程序中使用日志

在应用程序中使用日志,可以使用以下方式:

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

public class MyClass {
    private static final Logger logger = LoggerFactory.getLogger(MyClass.class);

    public void myMethod() {
        logger.debug("Debug log message");
        logger.info("Info log message");
        logger.warn("Warn log message");
        logger.error("Error log message");
    }
}

或者使用Lombok @Slf4j 注解 参考:https://blog.csdn.net/qq_20299791/article/details/89852458文章来源地址https://www.toymoban.com/news/detail-487393.html

5.logback.xml配置文件参考

<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="3 seconds">
    <property resource="application.yml"/>
    <property name="LOG_PATH" value="/opt/log/"/>
<!--    <property name="LOG_PATH" value="/Users/changjiabo/opt/log/"/>-->
    <springProperty scope="context" name="appName" source="spring.application.name" defaultValue="ho-cc"/>
    <springProperty scope="context" name="env" source="spring.profiles.active"/>

    <!-- 输出到控制台 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-6p) --- [%yellow(%15.15t)] [%X{requestId}] %cyan(%-40.40logger{39}) : %msg%n</Pattern>
        </encoder>
    </appender>


    <!-- 业务日志2 -->
    <appender name="flowlog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}${appName}/flowlog/flowlog.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}${appName}/flowlog/flowlog-%d{yyyyMMdd}-%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>30MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>10</maxHistory>
            <totalSizeCap>2GB</totalSizeCap>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-6p --- [%15.15t] [%X{requestId}] %-40.40logger{39} : %msg%n</Pattern>
        </layout>
    </appender>


    <!-- 访问详细日志 -->
    <appender name="accDetail" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}${appName}/accDetail/accdetail.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}${appName}/accDetail/accdetail-%d{yyyyMMdd}-%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>30MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>1</maxHistory>
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern> %msg%n </Pattern>
        </layout>
    </appender>

    <!-- 需要上传elk日志 -->
    <appender name="logELK" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}${appName}/metriclog/callCenter.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}${appName}/metriclog/callCenter-%d{yyyyMMdd}-%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>30MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>1</maxHistory>
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%msg%n</Pattern>
        </layout>
    </appender>


    <!-- 打印 mybatis sql -->
    <logger name="com.wintelia" level="debug"/>


    <logger name="com.elk.aspect" level="info" additivity="false">
        <appender-ref ref="logELK"/>
    </logger>

    <logger name="com.accDetail.aspect" level="info" additivity="false">
        <appender-ref ref="accDetail"/>
    </logger>

    <!-- 开发环境 -->
    <springProfile name="dev,test">
        <logger name="com.wintelia" level="debug"/>
        <logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
        <logger name="org.apache.catalina.util.LifecycleBase" level="ERROR"/>
        <logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>
        <logger name="org.apache.sshd.common.util.SecurityUtils" level="WARN"/>
        <logger name="org.apache.tomcat.util.net.NioSelectorPool" level="WARN"/>
        <logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="ERROR"/>
        <logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>
    </springProfile>

    <springProfile name="prod,uat">
        <logger name="com.wintelia" level="info"/>
    </springProfile>

    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="flowlog"/>
    </root>

</configuration>

到了这里,关于在Spring Cloud架构下使用Spring Boot的Logback日志处理方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot中集成各种日志框架Logback、Log4j2和Java Util Logging

    Spring Boot支持多种日志框架,包括Logback、Log4j2和Java Util Logging(JUL)。在Spring Boot中,可以通过简单的配置来集成这些热门的日志框架。 下面将详细说明如何集成Logback、Log4j2和Java Util Logging,并提供相应的源代码示例。 集成Logback: Logback是Spring Boot默认的日志框架,它提供了高

    2024年02月05日
    浏览(57)
  • 拾壹博客Spring Boot转换成Spring Cloud Alibaba架构

    改的地方实在太多了,所以过程记录不下去了,但是业务模块跟Boot是一毛一样的没有变化,直接发项目代码,包括了nacos中的配置文件在对应的模块,运行大概是没有问题。 成果: 链接已死,真的大无语。 等哪天把家里的k8s的minio整一下。先传到CSDN咯。 PS:其实过年前就已

    2024年02月06日
    浏览(45)
  • ELK 处理 Spring Boot 日志

    来源:ibm.com/developerworks/cn/java /build-elk-and-use-it-for-springboot -and-nginx/index.html ELK 简介 Logstash Elasticsearch Kibana ELK 实现方案 ELK 平台搭建 安装 Logstash 安装 Elasticsearch 安装 Kibana 在 Spring Boot 中使用 ELK 修改并部署 Spring Boot 项目 配置 Shipper 角色 Logstash 配置 Indexer 角色 Logstash 查看效果

    2024年02月07日
    浏览(39)
  • Java版分布式微服务云开发架构 Spring Cloud+Spring Boot+Mybatis 电子招标采购系统功能清单

       一、立项管理 1、招标立项申请 功能点:招标类项目立项申请入口,用户可以保存为草稿,提交。 2、非招标立项申请 功能点:非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点:对草稿进行编辑,驳回的立项编辑,在途流程查看。 二、项目管

    2024年02月17日
    浏览(54)
  • Spring Boot 优雅实现统一数据返回格式+统一异常处理+统一日志处理

            在我们的项目开发中,我们都会对数据返回格式进行统一的处理,这样可以方便前端人员取数据,当然除了正常流程的数据返回格式需要统一以外,我们也需要对异常的情况进行统一的处理,以及项目必备的日志。         在项目开发中返回的是json格式的数据

    2024年01月19日
    浏览(43)
  • spring整合logBack日志框架:

    SLF4J(Simple Logging Facade for Java)是一种日志规范,类似于JDBC,我们常用的日志log4j、logback等都实现了这个规范,所以我们可以直接使用SLF4J的规范来使用日志。 它们是同一个作者开发的,logback是重新编写的内核,在一些关键执行的路径上提升了10倍以上。它也支持了一些新的

    2024年02月12日
    浏览(42)
  • 【Spring云原生系列】SpringBoot+Spring Cloud Stream:消息驱动架构(MDA)解析,实现异步处理与解耦合!

    🎉🎉 欢迎光临,终于等到你啦 🎉🎉 🏅我是 苏泽 ,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏 《Spring 狂野之旅:从入门到入魔》 🚀 本专栏带你从Spring入门到入魔   这是苏泽的个人主页可以看到我其他的内容哦👇👇 努力的苏泽 http://suzee.blog.

    2024年03月10日
    浏览(53)
  • Spring Boot日志基础使用 设置日志级别

    然后 我们来说日志 日志在实际开发中还是非常重要的 即可记录项目状态和一些特殊情况发生 因为 我们这里不是将项目 所以 讲的也不会特别深 基本还是将Spring Boot的日志设置或控制这一类的东西 相对业务的领域我们就不涉及了 日志 log 初期最明显的作用在于 开发中 你可以

    2024年02月10日
    浏览(36)
  • Spring Boot 日志的使用

    Spring Boot 日志是指在 Spring Boot 应用程序中记录日志信息和跟踪应用程序执行过程的机制和工具. Spring Boot 集成了常用的日志框架, 如 Log4j、logback、Java Util Logging, 并提供了简单易用的配置方式, 使开发者能够方便的应用程序能够方便的应对应用程序的运行状态进行监控和面试

    2024年02月05日
    浏览(36)
  • Spring Boot 中的 Spring Cloud Hystrix 是什么,原理,如何使用

    在分布式系统中,服务之间的调用是不可避免的。但是,当一个服务调用另一个服务时,如果被调用的服务出现了故障或者延迟,那么调用者也会受到影响,甚至会导致整个系统的崩溃。为了解决这个问题,Netflix 提供了一种解决方案:Hystrix。 在 Spring Cloud 中,Hystrix 是一个

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包