mybatis - [12] 日志工厂

题记部分

 

001 || 日志工厂

如果一个数据库操作出现了异常,需要通过日志定位问题。

 

002 || Log4j

Log4j是Apache的一个开源项目,通过使用Log4j,可以控制日志信息输送的目的地是控制台、文件、GUI组件。

我们也可以控制每一条日志的输出格式;

通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。

通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

step1:先导入log4j的包

<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version>
</dependency>

step2:log4j.properties

### 全局配置 #### 设置根日志记录器的级别和输出目标
# 日志级别从低到高依次为: ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
# 这里设置为 DEBUG 级别,意味着会输出 DEBUG 及以上级别的日志
# 输出目标为 console 和 file,即日志会同时输出到控制台和文件
log4j.rootLogger=DEBUG, console, file### 控制台输出配置 #### 定义一个名为 console 的输出器,使用 ConsoleAppender 类,将日志输出到控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender# 设置控制台输出的目标,这里是 System.out,也可以设置为 System.err
log4j.appender.console.Target=System.out# 设置控制台输出的布局,使用 PatternLayout 类,可以自定义日志的输出格式
log4j.appender.console.layout=org.apache.log4j.PatternLayout# 定义日志输出的格式
# %d{yyyy-MM-dd HH:mm:ss}: 日期时间,格式为年-月-日 时:分:秒
# %-5p: 日志级别,左对齐,宽度为 5 个字符
# %c{1}: 日志记录器的名称,只显示最后一个部分
# %L: 日志输出所在的行号
# %m: 日志消息内容
# %n: 换行符
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n### 文件输出配置 #### 定义一个名为 file 的输出器,使用 RollingFileAppender 类,支持日志文件的滚动
log4j.appender.file=org.apache.log4j.RollingFileAppender# 设置日志文件的路径和名称
log4j.appender.file.File=logs/application.log# 设置日志文件的最大大小,达到该大小后会进行滚动
# 这里设置为 10MB,单位可以是 KB、MB、GB 等
log4j.appender.file.MaxFileSize=10MB# 设置日志文件的最大备份数量
# 当日志文件滚动时,最多保留 10 个备份文件
log4j.appender.file.MaxBackupIndex=10# 设置文件输出的布局,同样使用 PatternLayout 类
log4j.appender.file.layout=org.apache.log4j.PatternLayout# 定义文件输出的日志格式,与控制台输出格式相同
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n### 特定包或类的日志级别配置 #### 可以为特定的包或类单独设置日志级别
# 例如,将 com.example 包下的所有类的日志级别设置为 INFO
log4j.logger.com.example=INFO### 异步日志配置 #### 定义一个名为 async 的异步输出器,使用 AsyncAppender 类
log4j.appender.async=org.apache.log4j.AsyncAppender# 将之前定义的 file 输出器添加到异步输出器中
log4j.appender.async.appenderRef=file# 设置异步输出器的缓冲区大小,这里设置为 1024 个日志事件
log4j.appender.async.BufferSize=1024# 可以将 rootLogger 的输出目标改为异步输出器,实现异步日志记录
# log4j.rootLogger=DEBUG, console, async### 邮件输出配置 #### 定义一个名为 mail 的邮件输出器,使用 SMTPAppender 类
# log4j.appender.mail=org.apache.log4j.net.SMTPAppender# 设置邮件的发送者地址
# log4j.appender.mail.From=your_email@example.com# 设置邮件的接收者地址
# log4j.appender.mail.To=recipient_email@example.com# 设置邮件的主题
# log4j.appender.mail.Subject=Application Error Log# 设置 SMTP 服务器地址
# log4j.appender.mail.SMTPHost=smtp.example.com# 设置 SMTP 服务器端口
# log4j.appender.mail.SMTPPort=25# 设置邮件输出的布局
# log4j.appender.mail.layout=org.apache.log4j.PatternLayout
# log4j.appender.mail.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n# 设置触发邮件发送的日志级别,这里设置为 ERROR,即只有当出现 ERROR 级别的日志时才发送邮件
# log4j.appender.mail.Threshold=ERROR# 可以将 rootLogger 的输出目标添加邮件输出器,实现错误日志邮件通知
# log4j.rootLogger=DEBUG, console, file, mail

step3:配置log4j为日志的实现

<settings><setting name="logImpl" value="LOG4J"/>
</settings>

 

 

 

003 || 标题

 

 

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

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

相关文章

未注册类。WSL 安装似乎已损坏。WslRegisterDistribution failed with error: 0x8007019e/

前言 不知何时,我的wsl环境又坏了。 其实wsl我不怎么用,但是今天突然想用一下docker,但是没有启动成功。 于是乎我试了一下wsl,发现是wsl完全坏了。 之前卸载过wsl的某个子系统,比如ubuntu22,当初想着换24,之后很长一段时间没用过wsl。 尽管我怀疑是这个操作造成的问题,…

清华大学最新力作,DeepSeek 从入门到精通PDF

前几天,我发布了一篇关于 WPS 集成 DeepSeek 的教程,没想到大家的反响非常热烈!很多朋友都表示,通过这篇教程学到了不少关于 DeepSeek 的实用技巧,赶紧点进来看。不过,今天我给大家带来了更猛的干货——清华大学最新发布的 DeepSeek 资料!而且这次的资料更加关注 DeepSe…

安装程序无法自动安装virtual machine

安装VMware Tools 失败 发现在给过旧的系统安装 安装VMware Tools 的时候,会失败,比如 win7、win server2008等。原因 官网的说明,在这里 看不懂的自行翻译: 微软已将 Windows 驱动程序签名更改为自 2019 年 12 月 3 日起仅使用 SHA-2 算法,不支持 SHA-2 代码签名的旧版 W…

尝试在 Kubernetes 集群上用阿里云 GPU 实例部署 Ollama + DeekSeek-R1

在前一篇博文中尝试了使用阿里云 GPU 实例 ECS 单机部署了 DeekSeek-R1 7b 模型 。这篇博文记录一下在 k8s 集群上用阿里云 GPU 实例部署 DeekSeek R1 大模型的尝试过程,部署的也是 deepseek-r1:7b 模型。 先准备一台阿里云 GPU 实例,选用了共享型 GPU 实例 sgn7i,8核31G,4…

基于SOA海鸥优化算法的三维曲面最高点搜索matlab仿真

1.程序功能描述 基于SOA海鸥优化算法的三维曲面最高点搜索matlab仿真,输出收敛曲线以及三维曲面最高点搜索结果。 2.测试软件版本以及运行结果展示MATLAB2022A版本运行 3.核心程序for ij = 1:Mgen% 初始化本代最佳适应度及对应解yfit = 0.0;xbest = zeros(1,2); % 初…

Tomasulo 调度算法实现架构分析

虽然早在 1967 年就已经提出了 Tomasulo 调度算法 [1],但网上仍很少找到关于落到模块粒度的教程文档。从零复现一遍成本太大,因此用画原理图的方式做思想实验,尝试理解 Tomasulo 在电路上如何实现。 处理数据 首先明细几个概念指令(Instruction):包含指令类型(ADD、MUL、…

最新VMware Workstation虚拟机下载并安装

[2025年]最新VMware Workstation虚拟机下载并安装 1.最新VMware Workstation下载地址 2024年5月5日之后,VMware workstation不能直接在vmware官网进行下载了,需要在broadcom博通网站上进行下载 博通收购Vmware后(将workstation免费了),如下 旧的地址点击下载的时候会跳转到…

js之prototype

var TestPrototype = function () {this.propA = 1;this.methodA = function() {return this.propA;} }TestPrototype.prototype = {methodB: function() {return this.propA;} }var objA = new TestPrototype();objA.methodA() // 1 objA.methodB() // 1JavaScript 中, 任何函…

LGP4211_1 [LNTS 2014] LCA 学习笔记

LGP4211_1 [LNTS 2014] LCA 学习笔记 本题一题多解,此处记录其树剖+线段树做法。 Luogu Link 题意简述 给出一棵 \(n\) 个结点的树,以 \(1\) 为根。令 \(dep[1]=1\)。\(m\) 次询问,每次给定 \(l,r,z\),求 \(\sum_{i=l}^r dep[\text{lca}(i,z)]\)。 \(n,m\le 5^10^4\)。 做法…

LGP4211 [LNTS 2014] LCA 学习笔记

LGP4211_1 [LNTS 2014] LCA 本题一题多解,此处记录其树剖+线段树做法。 Luogu Link 题意简述 给出一棵 \(n\) 个结点的树,以 \(1\) 为根。令 \(dep[1]=1\)。\(m\) 次询问,每次给定 \(l,r,z\),求 \(\sum_{i=l}^r dep[\text{lca}(i,z)]\)。 \(n,m\le 5^10^4\)。 做法解析 题目…

自然语言处理入门【第4章】:认知语言智能

4.1 对话与问答 4.1.1 问答系统 问答系统(Question Answering System,QA System)是人工智能与自然语言处理领域的重要研究方向,旨在通过计算机技术实现对人类自然语言提问的精准理解与高效响应。与传统的搜索引擎不同,问答系统不仅需要检索相关信息,还需对问题进行语义解…

V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库

前言 今天大姚给大家分享一个基于 .NET MAUI 的开源免费、开箱即用的UI组件库:V-Control。 V-Control项目介绍 V-Control 是一个适用于 .NET MAUI 的开源(MIT license)、免费的 UI 组件库,它提供了一组开箱即用的 UI 控件,可快速搭建面向业务的应用程序界面。.NET MAUI介绍 …