我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringCloud使用logback日志框架教程详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SpringCloud使用logback日志框架教程详解

前言

Logback是一个功能强大的日志框架,它是一个基于slf4j的日志系统,提供了可靠的日志服务,比log4j更快,更灵活,更容易使用。它可以定义日志消息的输出格式,支持灵活的日志输出,支持多种日志文件格式,支持按时间和大小分割日志等功能。本文将教会你快速让你的项目集成logback日志框架。

一.依赖引入

如果项目是spring web项目,并且已经引入了下面依赖,可以直接使用:

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

如果你的项目不是web应用,则可以引入依赖:

<properties>
    <logback.version>1.1.11</logback.version>
</properties>

<dependency>
    <groupId>ch.qos.logback</groupId>
	<artifactId>logback-access</artifactId>
	<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
	<artifactId>logback-classic</artifactId>
	<version>${logback.version}</version>
	</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
	<version>${logback.version}</version>
</dependency>

如果你项目中是spring cloud 2.x版本,则logback版本号${logback.version}可以用:

  <version>1.2.3</version>

Spring Cloud 1.x 依赖的logback-classic版本号是:

  <version>1.1.11</version>

二.logback-spring.xml配置

logback-spring.xml命名要加上-spring,表明它是一个专门为Spring应用准备的Logback配置文件,此文件将把Spring的日志信息输出到Logback的日志系统中,而且这样才可以使用 <springProfile name="dev">这种根据不同环境切换不同日志输出规则的配置。

提供一个完整的配置文件,可以根据自己项目定制配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">

    <contextName>logback</contextName>
       <!--必须修改:改成你的日志文件名,下面配置表示:在项目启动目录下,创建个logs文件夹,并将日志写入到demo.log文件中-->
    <property name="log.name" value="logs/demo"/>

    <!--输出到控制台 ConsoleAppender-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

  <!--必须要配置:下面配置含义,当单个日志文件大小超过100M后,会生成新日志文件,并将旧其按日志进行打包压缩,当日志总大小超过10G或者日志时间超过7天,就吧最老的日志删除,避免日志撑爆服务器硬盘导致服务器宕机-->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.name}.log</file>
        <!--滚动策略,按照时间滚动 TimeBasedRollingPolicy-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
            <FileNamePattern>${log.name}.%d{yyyy-MM-dd}.%i.log.gz</FileNamePattern>
            <!-- 单个日志文件最多 100MB -->
            <maxFileSize>100MB</maxFileSize>
            <!--只保留最近7天的日志-->
            <maxHistory>7</maxHistory>
            <!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
            <totalSizeCap>10GB</totalSizeCap>
        </rollingPolicy>
        <!--日志输出编码格式化-->
        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d [%t] %-5level %logger{36}.%M\(%file:%line\) - %msg%n</pattern>
        </encoder>
    </appender>

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

    <logger name="org.springframework" level="warn"/>

    <springProfile name="local">
        <!-- 打印mybatis日志 -->
        <logger name="cn.enn.smart.mapper" level="debug"/>
        <root level="info">
            <appender-ref ref="console"/>
            <!--本地环境时,不写入日志文件 -->
        </root>
    </springProfile>

    <springProfile name="dev">
        <!-- 打印mybatis日志 -->
        <logger name="cn.enn.smart.mapper" level="debug"/>
        <root level="debug">
            <appender-ref ref="console"/>
            <appender-ref ref="file"/>
        </root>
    </springProfile>

    <springProfile name="test">
        <!-- 打印mybatis日志 -->
        <logger name="cn.enn.smart.mapper" level="debug"/>
        <root level="info">
            <appender-ref ref="console"/>
            <appender-ref ref="file"/>
        </root>
    </springProfile>

    <springProfile name="pro">
        <!-- 打印mybatis日志 -->
        <logger name="cn.enn.smart.mapper" level="debug"/>
        <root level="info">
            <appender-ref ref="console"/>
            <appender-ref ref="file"/>
        </root>
    </springProfile>

</configuration>

其中要修改配置的地方:

1.日志文件名要配置,这个最好以自己项目名称命名,如:xxx.log
2.日志保留策略要配置,上面默认保留7天并且总日志大小不能超过10G,否则logback会自动删除
3.项目配置文件名称要配置,如果你的配置文件命名是application-local.properties、application-dev.properties、application-test.properties、application-pro.properties可使用上述配置,如果不是则需要按自己配置文件真实后缀名,修改: <springProfile name="local">、 <springProfile name="dev">、 <springProfile name="test">、 <springProfile name="pro">这四行配置。

三.配置文件application.properties所需配置

1.配置文件中声明项目名称:

spring.application.name=demo

2.可以根据不同的配置文件,决定是不是要打印Mybatis日志,配置如下:

①.关闭生产Mybatis日志

修改application-pro.propertities文件,增加配置:

#关闭Mybatis日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.nologging.NoLoggingImpl

②.打开开发、测试环境Mybatis日志

application.properties中增加配置:

#打印Mybatis日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

四.如果想让开发、测试、生产等环境共用一套logback配置,可使用logback.xml:

文件名可直接用logback.xml,不需要用logback-spring.xml来命名了,因为不需要使用 <springProfile name="dev">这种配置来区分环境了。

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">

    <contextName>logback</contextName>
    <property name="log.name" value="logs/demo"/>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.name}.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <FileNamePattern>${log.name}.%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern>
            <!-- 单个日志文件最多 100MB -->
            <maxFileSize>100MB</maxFileSize>
            <!--只保留最近7天的日志-->
            <maxHistory>7</maxHistory>
            <!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
            <totalSizeCap>10GB</totalSizeCap>
        </rollingPolicy>
        <!--日志输出编码格式化-->
        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d [%t] %-5level %logger{36}.%M\(%file:%line\) - %msg%n</pattern>
        </encoder>
    </appender>

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

</configuration>

五.如何高效的使用log.debug()打印日志

log.debug()使用时,最好增加判断,防止条件不满足时候,也会执行打印日志的代码,造成不必要的资源消耗。比如打印日志语句中存在对象转字符串等操作时,增加判断后,将不再消耗系统资源。

if (log.isDebugEnabled()) {
    log.debug("1.完成将文本数据导入到XML文件中");
}

总结

本文介绍了如何使用SpringCloud使用Logback日志框架,文章总结提供了使用Logback框架的实现步骤,以及可能出现的一些问题,以及一些常用的配置项,包括根据不同的环境配置不同日志输出,控制日志文件大小等保留策略,以便读者了解如何构建可靠的微服务应用程序。

以上就是SpringCloud使用logback日志框架教程详解的详细内容,更多关于SpringCloud logback日志框架的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SpringCloud使用logback日志框架教程详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SpringCloud使用logback日志框架教程详解

Logback是一个功能强大的日志框架,它是一个基于slf4j的日志系统,提供了可靠的日志服务,比log4j更快,更灵活,更容易使用。本文将教会你快速让你的项目集成logback日志框架,需要的朋友可以参考下
2023-05-19

Java接口测试中日志框架Logback该怎样使用

这篇文章主要为大家分析了Java接口测试中日志框架Logback该怎样使用的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Java接口测试中日志框架Logba
2023-06-28

SpringCloud中Gateway的使用教程详解

SpringCloud Gateway是Spring体系内的一个全新项目,它旨在为微服务架构提供一种简单有效的统一的API路由管理方式。本文就来为大家详细讲讲Gateway的使用教程,需要的可以参考一下
2022-11-13

Flutter路由框架Fluro使用教程详细讲解

在Flutter应用开发过程中,除了使用Flutter官方提供的路由外,还可以使用一些第三方路由框架来实现页面管理和导航,Fluro作为一款优秀的Flutter企业级路由框架,Fluro的使用比官方提供的路由框架要复杂一些,但是却非常适合中大型项目
2022-11-13

Java使用junit框架进行代码测试过程详解

单元测试就是针对最小的功能单元编写测试代码,Junit是使用Java语言实现的单元测试框架,它是开源的,Java开发者都应当学习并使用Junit编写单元测试。本文就来讲讲Junit框架的使用教程,需要的可以参考一下
2023-02-27

Windows 8 应用框架理解及开发工具使用实例教程

Windows 操作系统之所以风靡世界,是因为其“易学易用”,从用户的角度出发,让数以万计的非IT人员使用计算机实现娱乐,工作等目的。Windows 8继承Windows桌面的优点,同时提供一种新的用户体验模式 -
2022-06-04

Spring使用xml方式整合第三方框架流程详解

这篇文章主要介绍了Spring使用xml方式整合第三方框架流程,Spring会在应用上下文中为某个bean寻找其依赖的bean,Spring中bean有三种装配机制,分别是:在xml中显式配置、在java中显式配置、隐式的bean发现机制和自动装配
2023-02-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录