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

【日常记录-Java】代码配置Logback

1. 简介

        在Logback中,推荐使用配置文件(如logback.xml或logback-spring.xml)来设置日志记录的行为。但在实际应用中,会有动态配置logback的需求。此时可通过编程的方式直接操作LoggerContext以及相关的Logger、Appender、Encoder等组件来实现。

2. 代码示例

// step1: 获取LoggerContext的实例,要求其具体实现为logback(通过SPI指定)
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();// step2: 进行设置
try {// step2.1: 创建RollingFileAppender并进行配置RollingFileAppender<ILoggingEvent> fileAppender = new RollingFileAppender<>();fileAppender.setContext(context);fileAppender.setFile("/logs/service.log");// step2.2: 创建滚动策略TimeBasedRollingPolicy<ILoggingEvent> rollingPolicy = new TimeBasedRollingPolicy<>();rollingPolicy.setContext(context);rollingPolicy.setFileNamePattern("/logs/service.%d{yyyy-MM-dd}.log");rollingPolicy.setMaxHistory(30);fileAppender.setRollingPolicy(rollingPolicy);rollingPolicy.setParent(fileAppender);  // 该条语句非常关键rollingPolicy.start();// step2.3: 创建EncoderPatternLayoutEncoder encoder = new PatternLayoutEncoder();encoder.setContext(context);encoder.setPattern("%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n");encoder.start();fileAppender.setEncoder(encoder);// step2.4: 创建Filter,设定只输出INFO和ERROR级别LevelFilter infoFilter = new LevelFilter();infoFilter.setContext(context);infoFilter.setLevel(Level.INFO);infoFilter.setOnMatch(FilterReply.ACCEPT);infoFilter.setOnMismatch(FilterReply.NEUTRAL);infoFilter.start();LevelFilter errorFilter = new LevelFilter();errorFilter.setContext(context);errorFilter.setLevel(Level.ERROR);errorFilter.setOnMatch(FilterReply.ACCEPT);errorFilter.setOnMismatch(FilterReply.DENY);errorFilter.start();fileAppender.addFilter(infoFilter);fileAppender.addFilter(errorFilter);// step2.5: 启动FileAppenderfileAppender.start();// step2.6: 配置ROOT的日志级别以及Appendercontext.getLogger(Logger.ROOT_LOGGER_NAME).addAppender(fileAppender);context.getLogger(Logger.ROOT_LOGGER_NAME).setLevel(Level.INFO);
} catch (Exception e) {throw new RuntimeException(e);
}

相关文章:

【日常记录-Java】代码配置Logback

1. 简介 在Logback中&#xff0c;推荐使用配置文件&#xff08;如logback.xml或logback-spring.xml&#xff09;来设置日志记录的行为。但在实际应用中&#xff0c;会有动态配置logback的需求。此时可通过编程的方式直接操作LoggerContext以及相关的Logger、Appender、Encoder等…...

HTTP常见的请求头有哪些?都有什么作用?在 Web 应用中使用这些请求头?

HTTP 请求头&#xff08;Request Headers&#xff09;用于在 HTTP 请求中携带额外的信息&#xff0c;帮助服务器更好地处理请求。以下是一些常见的 HTTP 请求头及其作用&#xff1a; 常见请求头及其作用 1. Accept 作用&#xff1a;告知服务器客户端可以接受的内容类型。示例…...

电信数据清洗案例:利用MapReduce实现高效数据预处理

电信数据清洗案例&#xff1a;利用MapReduce实现高效数据预处理 在大数据时代&#xff0c;电信行业积累了大量的用户通话、短信、上网等行为数据。在数据分析和机器学习模型训练前&#xff0c;对这些数据进行清洗是至关重要的一步。MapReduce 是一种高效的数据处理模型&#x…...

react 中 FC 模块作用

React.FC 是一个泛型类型&#xff0c;用于定义函数组件的类型 一、类型定义和代码可读性 1. 明确组件类型 使用React.FC定义一个组件时&#xff0c;使得组件的输入&#xff08;props&#xff09;和输出&#xff08;返回的 React 元素&#xff09;都有明确的类型定义。 impo…...

多模态大模型(1)--CLIP

CLIP&#xff08;Contrastive Language-Image Pre-training&#xff09;模型是一种多模态预训练神经网络&#xff0c;由OpenAI在2021年发布。它通过对比学习的方式&#xff0c;将图像和文本映射到同一个向量空间中&#xff0c;从而实现跨模态的检索和分类。下面介绍其基础功能&…...

opencv入门学习总结

opencv学习总结 不多bb&#xff0c;直接上代码&#xff01;&#xff01;&#xff01; 案例一&#xff1a; import cv2 # 返回当前安装的 OpenCV 库的版本信息 并且是字符串格式 print(cv2.getVersionString()) """ 作用&#xff1a;它可以读取不同格式的图像文…...

C/C++内存管理 | new的机制 | 重载自己的operator new

一、C/C内存分布 1. 内存分区 栈又叫堆栈–非静态局部变量/函数参数/返回值等等&#xff0c;栈是向下增长的。内存映射段是高效的I/O映射方式&#xff0c;用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存&#xff0c;做进程间通信 .堆用于程序运行时动态内…...

知识库管理系统:企业数字化转型的加速器

在数字化转型的大潮中&#xff0c;知识库管理系统&#xff08;KBMS&#xff09;已成为企业提升效率和创新能力的关键工具。本文将探讨知识库管理系统的定义、企业建立知识库的必要性&#xff0c;以及如何快速搭建企业知识库。 知识库管理系统是什么&#xff1f; 知识库管理系统…...

uniapp 如何使用vuex store (亲测)

首先是安装&#xff1a; npm install vuexnext --save 安装之后&#xff0c;Vue2 这样写 不管在哪里&#xff0c;建立一个JS文件&#xff0c;假设命名&#xff1a;store.js 代码这样写&#xff1a; import Vue from vue; import Vuex from vuex;Vue.use(Vuex);const store…...

[编译报错]ImportError: No module named _sqlite3解决办法

1. 问题描述&#xff1a; 在使用python进行代码编译时&#xff0c;提示下面报错&#xff1a; "/home/bspuser/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py", line 18, in <module>import sqlite3File "/usr/local/lib/python2.7/sqlite3/_…...

【旷视科技-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…...

python学习记录16

字符串总结 python程序使用unicode编码&#xff0c;中文字符与英文字符都占一个字符&#xff0c;但英文字符只占一个字节&#xff0c;中文字符若按照utf-8格式编码占3个字节。 &#xff08;1&#xff09;字符串常用方法 1&#xff09;大小写转化 string.upper()#将所有字母…...

AI 大模型在软件开发中的角色

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/402a907e12694df5a34f8f266385f3d2.png#pic_center> &#x1f393;作者简介&#xff1a;全栈领域优质创作者 &#x1f310;个人主页&#xff1a;百锦再新空间代码工作室 &#x1f4de;工作室&#xff1a;新空间代…...

React中类组件和函数组件的理解和区别

react代码模块分为类组件和函数组件。 从语法和定义、内部状态管理、生命周期、性能、可读性和维护性、上下文、集成状态管理库等角度对比React中类组件和函数组件。 1、语法和定义 类组件&#xff1a; 使用 ES6 的类&#xff08;class&#xff09;语法定义的 React 组件。…...

Day62||prim算法精讲 |kruskal算法精讲

prim算法精讲 53. 寻宝&#xff08;第七期模拟笔试&#xff09; 题目描述 在世界的某个区域&#xff0c;有一些分散的神秘岛屿&#xff0c;每个岛屿上都有一种珍稀的资源或者宝藏。国王打算在这些岛屿上建公路&#xff0c;方便运输。 不同岛屿之间&#xff0c;路途距离不同&…...

upload-labs通关练习

目录 环境搭建 第一关 第二关 第三关 第四关 第五关 第六关 第七关 第八关 第九关 第十关 第十一关 第十二关 第十三关 第十四关 第十五关 第十六关 第十七关 第十八关 第十九关 第二十关 总结 环境搭建 upload-labs是一个使用php语言编写的&#xff0c…...

wordpress搭建主题可配置json

网站首页展示 在线访问链接 http://dahua.bloggo.chat/ 配置json文件 我使用的是argon主题&#xff0c;你需要先安装好主题&#xff0c;然后可以导入我的json文件一键配置。 需要json界面配置文件的&#xff0c;可以在评论区回复&#xff0c;看见评论我会私发给你。~...

RWKV-5/6 论文被 COLM 2024 收录

由 Bo PENG 和 RWKV 开源社区共同完成的 RWKV-5/6架构论文《Eagle and Finch: RWKV with Matrix-Valued States and Dynamic Recurrence》被顶级会议 COLM 2024 收录。 这是继 RWKV-4 架构论文《RWKV: Reinventing RNNs for the Transformer Era》被 EMNLP 2023 收录之后&…...

MinIO分片下载超大文件

一、前言 各位亲爱的们&#xff0c;之前介绍过了上传超大文件到MinIO&#xff1a; MinIO分片上传超大文件&#xff08;纯服务端&#xff09;MinIO分片上传超大文件&#xff08;非纯服务端&#xff09; 这里最后再补充一下从MinIO下载超大文件。 二、从MinIO分片下载大文件 …...

Vue3 -- 新组件【谁学谁真香系列6】

Teleport Teleport是什么?–Teleport是一种能够将我们的组件html结构移动到指定位置的技术。 父组件: <template><div calss="outer"><h2>我是App组件</h2><img src="https://z1.ax1x.com/2023/11/19/piNxLo4.jpg" alt=&qu…...

使用MATLAB进行DeOldify结果的后处理与定量分析

使用MATLAB进行DeOldify结果的后处理与定量分析 如果你是一位习惯在MATLAB环境中工作的研究人员或工程师&#xff0c;当你想对DeOldify这类AI图像上色工具的输出结果进行更深入的评估时&#xff0c;可能会觉得缺少趁手的分析工具。直接看效果图固然直观&#xff0c;但如何量化…...

Kotlin 2.3.20 正式发布!解构声明不怕写反了

val (email, username) user你确定没写反&#xff1f; 如果 User 的属性顺序是 (username, email)&#xff0c;恭喜你&#xff0c;这段代码已经悄悄埋了一个 bug。更可怕的是&#xff0c;两个属性都是 String 类型&#xff0c;编译器不会报任何错误。 Kotlin 2.3.20 刚刚发布…...

Phi-3-mini-4k-instruct-gguf实操手册:中文短文本生成场景下的温度调优策略

Phi-3-mini-4k-instruct-gguf实操手册&#xff1a;中文短文本生成场景下的温度调优策略 1. 模型概述与使用场景 Phi-3-mini-4k-instruct-gguf 是微软推出的轻量级文本生成模型&#xff0c;特别适合处理中文短文本任务。这个经过优化的GGUF版本模型&#xff0c;在问答、文本改…...

如何将微信聊天记忆转化为数字珍藏:WeChatMsg的数据主权革命

如何将微信聊天记忆转化为数字珍藏&#xff1a;WeChatMsg的数据主权革命 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…...

[具身智能-190]:具身智能常见的仿真平台与常见的模型算法,包括传统算法与AI算法。

在具身智能的开发中&#xff0c;仿真平台与模型算法是相辅相成的两个核心部分。仿真平台为算法提供了安全、高效、低成本的“练兵场”&#xff0c;而算法则是赋予机器人智能的“大脑”。以下为你梳理当前主流的仿真平台以及两类核心的模型算法&#xff1a;传统算法与AI算法。&a…...

TMAH显影液全场景应用:离子交换树脂在制备-使用-回收中的pH控制策略

为什么显影液的pH值如此重要&#xff1f;在芯片制造的精密世界里&#xff0c;光刻工艺就像是在头发丝上雕刻电路图案。而显影液&#xff0c;就是这场"雕刻"中的关键刻刀。目前主流的正性光刻胶显影液以四甲基氢氧化铵&#xff08;TMAH&#xff09;为主要成分&#xf…...

大厂疯抢!AI Agent开发岗要求速览+进阶学习路线图,速收藏!

文章分析了大厂AI Agent开发岗位的核心要求&#xff0c;包括扎实的后端开发基础、AI知识储备、主流框架掌握等。文章强调AI应用开发与后端开发并非对立&#xff0c;而是相辅相成&#xff0c;并提供了详细的学习路线图&#xff0c;涵盖基础阶段、AI知识入门、实践项目、深化与拓…...

Qwen3-4B-Thinking-GGUF开源模型:Apache-2.0协议下合规商用注意事项

Qwen3-4B-Thinking-GGUF开源模型&#xff1a;Apache-2.0协议下合规商用注意事项 1. 引言&#xff1a;当开源模型遇上商业应用 最近&#xff0c;一个名为Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF的模型在开发者圈子里引起了不小的关注。这个模型基于Qwen3-4B-Thinkin…...

Pixel Script Temple 为C++高性能计算项目生成优化脚本

Pixel Script Temple 为C高性能计算项目生成优化脚本 1. 高性能计算开发的痛点 在C高性能计算领域&#xff0c;开发者经常面临一个共同困境&#xff1a;明明硬件资源充足&#xff0c;但程序性能就是上不去。你可能也遇到过这样的情况 - 代码逻辑没问题&#xff0c;算法也正确…...

4阶段构建企业级离线文档处理平台:从问题诊断到性能优化全指南

4阶段构建企业级离线文档处理平台&#xff1a;从问题诊断到性能优化全指南 【免费下载链接】WeKnora LLM-powered framework for deep document understanding, semantic retrieval, and context-aware answers using RAG paradigm. 项目地址: https://gitcode.com/GitHub_Tr…...