当前位置: 首页 > news >正文

后端项目开发:集成日志

SpringBoot 默认选择的是slf4j做日志门面,logback做日志实现。由于log4j有性能问题,不建议使用。
由于log4j2的表现性能更好,我们需要集成log4j2,同时排除旧的日志实现包。

<!-- Spring Boot 启动器 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!-- 去掉logback配置 --><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions>
</dependency>
<!-- 引入log4j2依赖 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

添加log4j2.xml配置文件

<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN" monitorInterval="600"><Properties><!-- 配置日志文件输出目录,此配置将日志输出到tomcat根目录下的指定文件夹 --><Property name="LOG_HOME">D:\logs</Property></Properties><Appenders><!--这个输出控制台的配置,这里输出除了warn和error级别的信息到System.out--><Console name="console_out_appender" target="SYSTEM_OUT"><!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) --><ThresholdFilter level="warn" onMatch="DENY" onMismatch="ACCEPT"/><!-- 输出日志的格式 --><PatternLayout pattern="%5p [%t] %d{yyyy-MM-dd HH:mm:ss} (%F:%L) %m%n"/></Console><!--这个输出控制台的配置,这里输出warn和error级别的信息到System.err,在eclipse控制台上看到的是红色文字--><Console name="console_err_appender" target="SYSTEM_ERR"><!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) --><ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/><!-- 输出日志的格式 --><PatternLayout pattern="%5p [%t] %d{yyyy-MM-dd HH:mm:ss} (%F:%L) %m%n"/></Console><!-- TRACE级别日志 --><!-- 设置日志格式并配置日志压缩格式,压缩文件独立放在一个文件夹内,日期格式不能为冒号,否则无法生成,因为文件名不允许有冒号,此appender只输出trace级别的数据到trace.log --><RollingRandomAccessFile name="trace_appender"immediateFlush="true" fileName="${LOG_HOME}/trace.log"filePattern="${LOG_HOME}/trace/trace - %d{yyyy-MM-dd HH_mm_ss}.log.gz"><PatternLayout><pattern>%5p [%t] %d{yyyy-MM-dd HH:mm:ss} (%F:%L) %m%n</pattern></PatternLayout><Policies><!-- 两个配置任选其一 --><!-- 每个日志文件最大2MB --><SizeBasedTriggeringPolicy size="2MB"/></Policies><Filters><!-- 此Filter意思是,只输出debug级别的数据 --><!-- DENY,日志将立即被抛弃不再经过其他过滤器;NEUTRAL,有序列表里的下个过滤器过接着处理日志;ACCEPT,日志会被立即处理,不再经过剩余过滤器。 --><ThresholdFilter level="debug" onMatch="DENY" onMismatch="NEUTRAL"/><ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/></Filters></RollingRandomAccessFile><!-- DEBUG级别日志 --><!-- 设置日志格式并配置日志压缩格式,压缩文件独立放在一个文件夹内,日期格式不能为冒号,否则无法生成,因为文件名不允许有冒号,此appender只输出debug级别的数据到debug.log --><RollingRandomAccessFile name="debug_appender"immediateFlush="true" fileName="${LOG_HOME}/debug.log"filePattern="${LOG_HOME}/debug/debug - %d{yyyy-MM-dd HH_mm_ss}.log.gz"><PatternLayout><pattern>%5p [%t] %d{yyyy-MM-dd HH:mm:ss} (%F:%L) %m%n</pattern></PatternLayout><Policies><!-- 两个配置任选其一 --><!-- 每个日志文件最大2MB --><SizeBasedTriggeringPolicy size="2MB"/><!-- 如果启用此配置,则日志会按文件名生成新压缩文件,即如果filePattern配置的日期格式为 %d{yyyy-MM-dd HH} ,则每小时生成一个压缩文件,如果filePattern配置的日期格式为 %d{yyyy-MM-dd} ,则天生成一个压缩文件 --><!--                 <TimeBasedTriggeringPolicy interval="1" modulate="true" /> --></Policies><Filters><!-- 此Filter意思是,只输出debug级别的数据 --><!-- DENY,日志将立即被抛弃不再经过其他过滤器;NEUTRAL,有序列表里的下个过滤器过接着处理日志;ACCEPT,日志会被立即处理,不再经过剩余过滤器。 --><ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/><ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/></Filters></RollingRandomAccessFile><!-- INFO级别日志 --><RollingRandomAccessFile name="info_appender"immediateFlush="true" fileName="${LOG_HOME}/info.log"filePattern="${LOG_HOME}/info/info - %d{yyyy-MM-dd HH_mm_ss}.log.gz"><PatternLayout><pattern>%5p [%t] %d{yyyy-MM-dd HH:mm:ss} (%F:%L) %m%n</pattern></PatternLayout><Policies><SizeBasedTriggeringPolicy size="2MB"/></Policies><Filters><ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/><ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/></Filters></RollingRandomAccessFile><!-- WARN级别日志 --><RollingRandomAccessFile name="warn_appender"immediateFlush="true" fileName="${LOG_HOME}/warn.log"filePattern="${LOG_HOME}/warn/warn - %d{yyyy-MM-dd HH_mm_ss}.log.gz"><PatternLayout><pattern>%5p [%t] %d{yyyy-MM-dd HH:mm:ss} (%F:%L) %m%n</pattern></PatternLayout><Policies><SizeBasedTriggeringPolicy size="2MB"/></Policies><Filters><ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/><ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/></Filters></RollingRandomAccessFile><!-- ERROR级别日志 --><RollingRandomAccessFile name="error_appender"immediateFlush="true" fileName="${LOG_HOME}/error.log"filePattern="${LOG_HOME}/error/error - %d{yyyy-MM-dd HH_mm_ss}.log.gz"><PatternLayout><pattern>%5p [%t] %d{yyyy-MM-dd HH:mm:ss} (%F:%L) %m%n</pattern></PatternLayout><Policies><SizeBasedTriggeringPolicy size="2MB"/></Policies><Filters><ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/></Filters></RollingRandomAccessFile></Appenders><Loggers><!-- 配置日志的根节点 --><root level="info"><appender-ref ref="console_out_appender"/><appender-ref ref="console_err_appender"/><appender-ref ref="trace_appender"/><appender-ref ref="debug_appender"/><appender-ref ref="info_appender"/><appender-ref ref="warn_appender"/><appender-ref ref="error_appender"/></root><!-- 第三方日志系统 --><logger name="org.springframework.core" level="info"/><logger name="org.springframework.beans" level="info"/><logger name="org.springframework.context" level="info"/><logger name="org.springframework.web" level="info"/><logger name="org.jboss.netty" level="warn"/><logger name="org.apache.http" level="warn"/></Loggers></Configuration>

相关文章:

后端项目开发:集成日志

SpringBoot 默认选择的是slf4j做日志门面&#xff0c;logback做日志实现。由于log4j有性能问题&#xff0c;不建议使用。 由于log4j2的表现性能更好&#xff0c;我们需要集成log4j2&#xff0c;同时排除旧的日志实现包。 <!-- Spring Boot 启动器 --> <dependency>…...

20-GIT版本控制

GIT 一 简介 场景 团队协作的时候,我们项目开发会遇到代码需要进行管理的场景。 多个开发者之间,每天写的代码可能需要合并,共享。 例子:我写的用户模块、小王写的订单模块,用户模块最终需要跟订单模块合并。 每天写完代码,qq、u盘拷贝,代码合并一个项目中。 希望…...

解决前后端交互Long类型精度丢失的问题

1、全局注解 package com.jiawa.train.common.config;import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import org.springframework.c…...

回归预测 | MATLAB实现GA-ELM遗传算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现GA-ELM遗传算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现GA-ELM遗传算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基本介绍程序…...

SpringCloud学习笔记(九)_使用Java类加载SpringBoot、SpringCloud配置文件

我们都知道平常在使用SpringBoot和SpringCloud的时候&#xff0c;如果需要加载一两个配置文件的话我们通常使用Value(“${属性名称}”)注解去加载。但是如果配置文件属性特别多的时候使用这种方式就显得特别的不友好了。 比如说&#xff0c;我们要加载下方这个名为application.…...

三次握手四次挥手之全连接半连接队列

什么是全连接半连接 在 TCP 三次握手的时候&#xff0c;Linux 内核会维护两个队列&#xff0c;分别是&#xff1a; 半连接队列&#xff0c;也称 Listen 队列&#xff1b;全连接队列&#xff0c;也称 accept 队列&#xff1b; 工作原理 每一个socket执行listen时&#xff0c…...

Racknerd便宜高性价比服务器汇总

介绍 Racknerd是近年来比较良心的高性价比主机商了 我制作了Racknerd服务器看板&#xff0c;统计所有在售的VPS和独立服务器 支持多栏目筛选以及排序&#xff0c;帮助你挑选目前在售的主机 也支持筛选最近上架、补货的机器 注意 1.爬虫数据可能有延迟性、不准确性&#xff…...

JavaScript 基础知识回顾与复习---关于this

在JavaScript中&#xff0c;this是一个关键字&#xff0c;它在不同的上下文中引用不同的对象&#xff0c;其this的绑定是动态的&#xff0c;这主要取决于函数的调用方式。this的绑定是函数运行时才确定的而不是编写是就绑定。在我看来this就像魔法一样让人难以理解掌握&#xf…...

Lua之Lua源文件批量转换为luac字节码文件

准备的工具&#xff1a;luac.exe CSDNhttps://mp.csdn.net/mp_download/manage/download/UpDetailed Unity版: using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEngine;public static class Bat…...

简历V1.0问题合集 8/25-26

记录完 去看相应的知识点 对应着修改 &#xff08;带着问题总结 效果更好 把这一部分先过完&#xff09; Axois 1.axios.interceptors.request.use 和 response.use主要操作了什么了 你简历说了封装。这个要了解 2.axios get post put delete 请求里payload 、query string …...

P1052 [NOIP2005 提高组] 过河

[P1052 NOIP2005 提高组] 过河 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 问题描述&#xff1a;给定长度L&#xff0c;和一次可以跳动的长度 s 到 t&#xff0c;给定m个石头的位置&#xff0c;求最少经过多少个石头可以超过L。 思路&#xff1a;如果L很小的话&#xff0…...

ArrayList和Vector及LinkedList的区别

1.ArrayList和Vector的区别 第一句话&#xff1a;ArrayList和Vector底层都是数组实现的&#xff0c;初始容量都为10&#xff1b;在ArrayList的底层&#xff0c;是通过定义一个DEFAULT_CAPACITY的常量来指定的&#xff0c;而Vector的底层&#xff0c;是直接在空参构造中&#x…...

HVV爆火漏洞:最新 WPS RCE (远程命令执行) 复现

最近HVV爆出的很火的WPS命令执行漏洞&#xff0c;其实并不是0DAY&#xff0c;早在2019年就出现了&#xff0c;只不过最近EXP才公开。接下来我们来复现一遍。 0x00 影响版本 WPS Office 2023 个人版 < 11.1.0.15120WPS Office 2019 企业版 < 11.8.2.12085 0x01 环境配置…...

我的128天创作纪念日-东离与糖宝

文章目录 机缘收获日常成就憧憬 不知不觉我也迎来了自己的128天创作纪念日&#xff0c;一起来看看我有什么想对大家说的吧 机缘 我的写博客之旅始于参加了代码随想录算法训练营。在训练营期间&#xff0c;代码随想录作者卡尔建议我们坚持每天写博客记录刷题学习的进度和心得体…...

卷积神经网络——下篇【深度学习】【PyTorch】【d2l】

文章目录 5、卷积神经网络5.10、⭐批量归一化5.10.1、理论部分5.10.2、代码部分 5.11、⭐残差网络&#xff08;ResNet&#xff09;5.11.1、理论部分5.11.2、代码部分 话题闲谈 5、卷积神经网络 5.10、⭐批量归一化 5.10.1、理论部分 批量归一化可以解决深层网络中梯度消失和…...

cas md5加密

CAS Authentication Credentials #cas.authn.accept.userscasuser::Mellon 查询账号密码SQL&#xff0c;必须包含密码字段 cas.authn.jdbc.query[0].sqlselect * from ca_user where username? 指定上面的SQL查询字段名&#xff08;必须&#xff09; cas.authn.jdbc.query…...

[管理与领导-51]:IT基层管理者 - 8项核心技能 - 6 - 流程

前言&#xff1a; 管理者存在的价值就是制定目标&#xff0c;即目标管理、通过团队&#xff08;他人&#xff09;拿到结果。 要想通过他人拿到结果&#xff1a; &#xff08;1&#xff09;目标&#xff1a;制定符合SMART原则的符合业务需求的目标&#xff0c;团队跳一跳就可以…...

天翼物联、汕头电信与汕头大学共建新一代信息技术与数字创新(物联网)联合实验室

近日&#xff0c;在工业和信息化部和广东省人民政府共同主办的2023中国数字经济创新发展大会上&#xff0c;天翼物联、汕头电信与汕头大学共建“新一代信息技术与数字创新&#xff08;物联网&#xff09;”联合实验室签约仪式举行。汕头大学校长郝志峰、中国电信广东公司总经理…...

Failed to load local image resource/images/1.jpg无法加载本地图片资源

微信小程序开发无法加载本地图片 先放报错图片 绝对路径不行&#xff0c; <image src"../../images/1.jpg" mode"heightFix"></image>使用相对路径就可以了 <image src"../../images/1.jpg" mode"heightFix"><…...

Go和Java实现责任链模式

Go和Java实现责任链模式 下面通过一个审批流程的案例来说明责任链模式的使用。 1、责任链模式 责任链模式为请求创建了一个接收者对象的链。这种模式给予请求的类型&#xff0c;对请求的发送者和接收者进行解耦。这 种类型的设计模式属于行为型模式。 在这种模式中&#x…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...