SpringBoot 使用logback(多环境配置)

Logback是由log4j创始人设计的又一个开源日志组件。可用于项目日志功能。官网地址

第1步:添加坐标依赖

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

logback里依赖了slf4j,就不用单独添加slf4j坐标了

第2步:创建logback配置文件

在resources目录下创建logback文件夹,并创建dev.xml,pro.xml两个配置文件,用于配置开发环境和生产环境的logback配置。目录结构像这样:

第3步:在application.yaml中根据运行环境读取logback配置

#日志配置
logging:config: classpath:logback/${spring.profiles.active}.xml #根据运行环境读取日志配置

第4步:配置logback/dev.xml文件(开发环境的日志配置)

开发环境中,可以将日志打印在控制台。

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false"><!-- 设置控制台彩色日志格式,注意:%L打印行号对性能有影响,因此不建议在生产环境使用。 --><conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/><conversionRule conversionWord="wEx"converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/><property name="CONSOLE_LOG_PATTERN"value="%clr([%d{HH:mm:ss}){faint} %clr(%p) %clr(%.10t]){faint} %clr(%C{39}){cyan} %clr(%M:%L){magenta}: %m%n%wEx"/><!--设置输出到控制台--><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder" charset="UTF-8"><!-- 设置输出到控制台的日志格式 --><pattern>${CONSOLE_LOG_PATTERN}</pattern></encoder></appender><!--设置日志级别--><root level="INFO"><appender-ref ref="CONSOLE"/></root>
</configuration>

第5步:配置logback/pro.xml文件(生成环境的日志配置)

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false"><!-- 应用名称 --><springProperty scope="context" name="springApplicationName" source="spring.application.name"defaultValue="spring"/><!-- 环境 --><springProperty scope="context" name="springProfilesActive" source="spring.profiles.active" defaultValue="pro"/><!-- 重启后是否删除日志 --><springProperty scope="context" name="cleanHistoryOnStart"source="logging.logback.rollingpolicy.clean-history-on-start" defaultValue="true"/><!-- 单个日志文件的大小 --><springProperty scope="context" name="maxFileSize" source="logging.logback.rollingpolicy.max-file-size"defaultValue="10MB"/><!-- 日志总文件最大值 --><springProperty scope="context" name="totalSizeCap" source="logging.logback.rollingpolicy.total-size-cap"defaultValue="50GB"/><!-- 日志保留时长 (天) --><springProperty scope="context" name="maxHistory" source="logging.logback.rollingpolicy.max-history"defaultValue="30"/><!-- 日志文件路径 --><springProperty scope="context" name="path" source="logging.file.path"defaultValue="./log/${springApplicationName}/${springProfilesActive}"/><contextName>${springApplicationName}</contextName><property name="PATTERN_FILE" value="%d{yyyy/MM/dd-HH:mm:ss} %-5level [%thread] %class{5}:%line>>%msg%n"/><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${path}/%d{yyyy-MM-dd}/%i.log</fileNamePattern><totalSizeCap>${totalSizeCap}</totalSizeCap><maxHistory>${maxHistory}</maxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>${maxFileSize}</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><!-- 重启项目后删除日志 --><cleanHistoryOnStart>${cleanHistoryOnStart}</cleanHistoryOnStart></rollingPolicy><encoder><pattern>${PATTERN_FILE}</pattern></encoder></appender><!--设置日志级别--><root level="WARN"><appender-ref ref="FILE"/></root></configuration>

 第6步:测试日志输出

在Controller中编写测试代码:

import ch.qos.logback.classic.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
@RequestMapping("/")
public class HomeController {private static final Logger logger = (Logger) LoggerFactory.getLogger(HomeController.class);@GetMapping("/")public String index() {logger.debug("【Debug】- Hello.");logger.info("【Info】- Hello.");logger.warn("【Warn】- Hello.");logger.error("【Error】- Hello.");return "index";}
}

1.测试开发环境:

在application.yaml文件中,配置:

spring:profiles:active: dev

运行项目,访问对应的地址,即可看到控制台日志输出:

2.测试生产环境:

在application.yaml文件中,配置:

spring:profiles:active: pro

 运行项目,访问对应的地址,即可看到对应目录下的日志输出:

这个日志存放路径,可以根据logback/pro.xml中fileNamePattern配置。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/12770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 提取PDF表格数据并保存到TXT文本或Excel文件

目录 安装Python库 Python提取PDF表格数据并保存到文本文档 Python提取PDF表格数据并保存到Excel文档 PDF文件常用于存储和共享各种类型的文档&#xff0c;这些文档可能包括大量的数据表格。通过提取这些PDF表格数据&#xff0c;我们可以将其导入到Excel、数据库或统计软件等…

技术架构

一、单机架构 简介&#xff1a;应用服务和数据库服务共用一台服务器 出现原因:出现在互联网早期&#xff0c;访问量比较小&#xff0c;单机足以满足 架构工作原理&#xff1a;以电商为例&#xff0c;可以看到通过应用&#xff08;划分了多个模块&#xff09;和数据库在单个服…

视频智能检测AI智能分析网关V4告警消息推送:公众号消息推送的配置步骤介绍

TSINGSEE青犀智能分析网关V4属于高性能、低功耗的软硬一体AI边缘计算硬件设备&#xff0c;目前拥有3种型号&#xff08;8路/16路/32路&#xff09;&#xff0c;支持Caffe/DarkNet/TensorFlow/PyTorch/MXNet/ONNX/PaddlePaddle等主流深度学习框架。硬件内部署了近40种AI算法模型…

继承,多态,封装以及对象的打印

前言&#xff1a; 我们都知道Java是一种面向对象的编程语言&#xff0c;面向对象语言的三大特性就是继承&#xff0c;多态&#xff0c;封装&#xff0c;而这些特性正好的Java基础的一个主体内容。在学到这之前&#xff0c;我们肯定已经学习过了类和对象&#xff0c;所以这部分…

光学镜片镀膜上下料设备

在现代化工业生产的浪潮中&#xff0c;智能化、自动化已成为提升生产效率、降低成本的关键所在。特别是在精密制造领域&#xff0c;对于设备的高精度、高效率要求更是严苛。今天向大家推荐一款引领行业潮流的智能设备——富唯智能镀膜上下料设备。 产品介绍 实现功能 单面镀膜…

NGINX SPRING HTTPS证书

服务器&#xff1a;xxx.xxx.xxx.56 客户端器&#xff1a;xxx.xxx.xxx.94##生成服务器证书和密钥容器 keytool -genkey -alias tas-server -keypass 250250 -keyalg RSA -keysize 2048 -validity 3650 -keystore D:\https证书\tas-server.jks -storepass 250250 -dname "C…

低成本创业分享,一个不用自己囤货、进货、直播的项目|抖音小店

大家好&#xff0c;我是喷火龙 在抖音上面开店&#xff0c;不仅可以卖自己的商品&#xff0c;还可以卖别人的商品赚差价&#xff0c; 并且不需要你囤货、进货、直播、剪视频&#xff0c;也不需要有粉丝。 这个项目就是抖音小店无货源。 很多朋友对抖音小店无货源模式的玩法…

tensorrtx-yolov5-v6.0部署在windows系统

前言&#xff1a;最近几天一直在搞这个东西&#xff0c;现在跑通了&#xff0c;为了以后自己看和帮助他人&#xff0c;就记录一下。虽然是跑通了但是觉得怪怪的&#xff0c;感觉不是自己想要的效果&#xff0c;另外这个只能检测图片&#xff0c;不能摄像头实时监测(我暂时没找到…

springsecurity项目快速搭建

自定义security的搭建 package com.sangeng.config;import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;Co…

智能文档处理:解析文档场景下多模态大模型的应用与研究前沿

解析文档场景下多模态大模型的应用与研究前沿 一、TextIn 文档解析技术1. 现有大模型文档解析问题2. 文档解析技术背景3. TextIn 文档解析技术架构4. 版面分析关键技术 Layout-engine 二、TextIn 文本向量化技术三、TextIn.com Text Intelligence 一、TextIn 文档解析技术 hell…

【driver6】debugfs,性能优化,

文章目录 1.内核调试手段&#xff1a;debugfs.h中api建立目录/sys/kernel/debug2.性能优化&#xff1a;裸磁盘无法使用&#xff0c;一般都刷文件系统。驱动加上要考虑磁盘io&#xff0c;内存占用&#xff0c;cpu使用情况3.Valgrind内存泄漏排查案例&#xff1a;4.cpu瓶颈&#…

英语学习笔记10——Look at ...

Look at … 看…… 词汇 Vocabulary fat adj. 胖的&#xff0c;丰富的 n. 脂肪 例句&#xff1a;他是个胖男孩。    He is a fat boy. 搭配&#xff1a;fat cat 有钱人&#xff0c;土豪 woman n. 女人 girl n. 女孩 madam n. 女士 man n. 男人 boy n. 男孩 sir n. 先生 …

云飞云共享云桌面如何降低电脑投入成本?

云飞云共享云桌面作为一种创新的云计算解决方案&#xff0c;以其独特的优势在业界赢得了众多认可。其中&#xff0c;它极大地降低了电脑投入成本&#xff0c;为企业和个人用户带来了实实在在的经济效益。那么&#xff0c;云飞云共享云桌面是如何实现这一点的呢&#xff1f; 设…

Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明

Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明 目录 Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明 一、简单介绍 二、监督学习 三、分类问题 四、回归任务 五、泛化、过拟合和欠拟合…

全面提升数据采集效率:IP代理产品的应用与评估详解

全面提升数据采集效率&#xff1a;IP代理产品的应用与评估详解 文章目录 全面提升数据采集效率&#xff1a;IP代理产品的应用与评估详解背景应用场景&#xff1a;平台首页信息抓取准备评测素材详细的产品使用和评测流程产品介绍亮数据的IP代理服务亮数据的爬虫工具及采集技术 注…

2024网上可申请离婚,无需对方同意!

&#x1f383;很多客户决定离婚之后却因为不了解离婚流程没准备好所需材料&#xff0c;导致离婚失败&#xff0c;或者无故被对方e意拖延&#xff0c;无计可施&#xff0c;无可奈何&#xff01; &#x1f383;别怕&#xff0c;2024年离婚新规定已发布&#xff0c;离婚变的简单了…

OpenAI新模型GPT-4o“炸裂登场” 响应速度堪比真人 关键还免费!

GPT-4o模型基于来自互联网的大量数据进行训练&#xff0c;更擅长处理文本和音频&#xff0c;并且支持50种语言。更值得一提的是&#xff0c;GPT-4o最快可以在232毫秒的时间内响应音频输入&#xff0c;几乎达到了人类的响应水平。 GPT-4o有多“炸裂”&#xff1f;核心能力有三 G…

点量云流3D应用线上展厅云推流方案分享

展厅是企业对外展示宣传的窗口&#xff0c;不论企业还是政fu单位、博物馆、科技馆&#xff0c;展厅都可以给用户一个更直观的感受。而随着技术的发展&#xff0c;展厅展示的内容也从最初的图文、视频&#xff0c;扩展更多文件类型&#xff0c;比如PPT\PDF文件以及3D应用数字孪生…

【文末附gpt升级方案】腾讯混元文生图大模型开源:中文原生Sora同款DiT架构引领新潮流

在人工智能与计算机视觉技术迅猛发展的今天&#xff0c;腾讯再次引领行业潮流&#xff0c;宣布其旗下的混元文生图大模型全面升级并对外开源。这次开源的模型不仅具备强大的文生图能力&#xff0c;更采用了业内首个中文原生的Sora同款DiT架构&#xff0c;为中文世界的视觉生成领…

uniapp使用地图开发app, renderjs使用方法及注意事项

上次提到uniapp开发地图app时得一些问题&#xff0c;最后提到使用renderjs实现app中使用任何地图&#xff08;下面将以腾讯地图为例&#xff0c;uniapp中写app时推荐使用得是高德地图&#xff0c;无法使用腾讯地图&#xff08;renderjs方式除外&#xff09;&#xff09;。 1、…