springboot网站开发如何配置log4j日志插件

springboot网站开发如何配置log4j日志插件!为了便于服务器等环境下的错误情况的排查根源,还是很有必要使用日志插件的,它可以记录下我们提前埋下的锚点信息。

在遇到故障,查看这些锚点记录的日志信息,可以快速高效的解决服务器遇到的故障。


第一步:增加配置文件在resource下面新建一个log4j.properties

###???Logger###
log4j.rootLogger = debug,stdout,D,E,W
###????????###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %p[%d{yyyy-MM-dd HH\:mm\:ss,SSS}] [%t] %C.%M(%L) | %m%n
###??DEBUG????????= E://logs/debug.log###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E:/logs/debug.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %p[%d{yyyy-MM-dd HH\:mm\:ss,SSS}] [%t] %C.%M(%L) | %m%n
###??ERROR???????? E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = E:/logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.HTMLLayout
log4j.appender.E.layout.LocationInfo = true
log4j.appender.E.layout.Title = Test_ERROR
###??WARN ?????????=E://logs/warn.log ###
log4j.appender.W = org.apache.log4j.RollingFileAppender
log4j.appender.W.File = E:/logs/warn.log
log4j.appender.W.Append = true
log4j.appender.W.Threshold = WARN
log4j.appender.W.MaxFileSize = 2KB
log4j.appender.W.layout = org.apache.log4j.HTMLLayout
log4j.appender.W.layout.LocationInfo = true
log4j.appender.W.layout.Title = Test_WARN

第二步:添加依赖参数

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

第三步:测试一下能否正常记录。

编写一个测试类即可。

package com.example.mydemo.test;

import org.apache.log4j.Logger;

public class TestLogger {
    static final Logger logger = Logger.getLogger(TestLogger.class);

    public static void main(String[] args) {
        System.out.println("hello");//控制台输出hello
        //日志信息
        logger.info("hello ,world");
        logger.debug("This is debug message");
        logger.warn("This is warn message");
        logger.error("This is error message");
    }
}

如图,我写了一个简单的测试类。里面调用了logger对象,的一些基础方法,它会在对应的存储文件下面输入我们预先设置好的信息。

yH5BAAAAAAALAAAAAAOAA4AAAIMhI+py+0Po5y02qsKADs=

如图,我还未开始 执行!里面是0字节。

我执行后,里面就有内容了。

如下所示:

yH5BAAAAAAALAAAAAAOAA4AAAIMhI+py+0Po5y02qsKADs= yH5BAAAAAAALAAAAAAOAA4AAAIMhI+py+0Po5y02qsKADs=

 有了这个案例,你就可以在任何你想埋下锚点记录信息的实体类里面去使用它了。很简单。 

比如上一次,我跟踪排查服务器图片无法正常创建就是在图片生成工具类里面埋下了很多锚点信息。

成功捕捉到了错误的信息。


yH5BAAAAAAALAAAAAAOAA4AAAIMhI+py+0Po5y02qsKADs=wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 这个就是我预先设置好的记录信息。一旦有异常,会输入我们指定的文件夹下面,打开即可查看错误原因。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySOL数据库管理

数据库基本操作 库和表 数据库–>数据表–>行&#xff08;记录&#xff09;&#xff1a;用来描述一个对象的信息列&#xff08;字段&#xff09;&#xff1a;用来描述对象的一个属性常用的数据类型 int整型float单精度浮点 4字节32位double双精度浮点 8字节64位char固…

如何在Linux Ubuntu系统安装Nginx服务并实现无公网IP远程连接

文章目录 1. 安装Docker2. 使用Docker拉取Nginx镜像3. 创建并启动Nginx容器4. 本地连接测试5. 公网远程访问本地Nginx5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 在开发人员的工作中&#xff0c;公网远程访问内网是其必备的技术需求之一。对于…

爬虫实战-Python爬取百度当天热搜内容

爬虫实战-Python爬取百度当天热搜内容 学习建议学习目标预期内容目标分解热搜地址热搜标题热搜简介热搜指数小总结 代码实现总结 学习建议 本文仅用于学习使用&#xff0c;不做他用&#xff1b;本文仅获取页面的内容&#xff0c;作为学习和对Python知识的了解&#xff0c;不会…

蓝桥-K倍区间--前缀和

题目描述&#xff1a; 给定一个长度为 NN 的数列&#xff0c;A1,A2,…AN&#xff0c;如果其中一段连续的子序列 Ai,Ai1,…Aj 之和是 K 的倍数&#xff0c;我们就称这个区间 [i,j] 是 K 倍区间。 你能求出数列中总共有多少个 K 倍区间吗&#xff1f; 输入格式 第一行包含两个…

vue3 elementPlus 设置树形报错时 setCheckedKeys of undefined

第一种解决方法 nextTick(async ()>{ treeRef.value!.setCheckedKeys(rows.permissionIds, false) }) 第一种解决方法 onMounted(async () > { treeRef.value!.setCheckedKeys([3], false) }&#xff09;

idea warning:java源值已过时将在未来所有发行版中删除

在idea中运行maven项目 如果出现idea warning:java源值已过时将在未来所有发行版中删除&#xff0c;详见如下截图所示&#xff1a; 注意&#xff1a;jdk8 要解决这个警告需要设置3个地方 首先打开File->Project Structure中的Project&#xff0c;将SDK和language level都设…

springboot使用socket和端口启动gRPC服务器的比较

gRPC 服务器启动方式比较 一. 介绍二. 套接字地址方式三. 端口方式四. 如何选择 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 一. 介绍 百度百科套接字 gRPC 是一种高性能的远…

Springboot笔记(web开启)-08

有一些日志什么的后续我会补充 1.使用springboot: 创建SpringBoot应用&#xff0c;选中我们需要的模块&#xff1b;SpringBoot已经默认将这些场景配置好了&#xff0c;只需要在配置文件中指定少量配置就可以运行起来自己编写业务代码&#xff1b; 2.SpringBoot对静态资源的映…

ideaSSM 人才引进管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 idea 开发 SSM 人才引进管理系统是一套完善的信息管理系统&#xff0c;结合SSM框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff…

动态代理源码分析

动态代理 代理模式的解释&#xff1a;为其他对象提供一种代理以控制对这个对象的访问&#xff0c;增强一个类中的某个方法&#xff0c;对程序进行扩展。 比如&#xff0c;现在存在一个UserService类&#xff1a; public class UserService {public void test() {System.out.…

PTA-练习4

目录 实验7-1-1 简化的插入排序 实验7-1-5 交换最小值和最大值 实验7-1-6 求一批整数中出现最多的个位数字 实验7-1-8 找出不是两个数组共有的元素 实验7-1-9 求整数序列中出现次数最多的数 实验7-1-10 组个最小数 实验7-1-11 装箱问题 实验7-1-1 简化的插入排序 //先将…

明明是字符串,为什么写的是char *str

字符串匹配 /* 暴力 将目标串s的第一个字符和模式串T的第一个字符进行匹配 相等&#xff0c;则比较s的第二个和T的第三个 不想等&#xff0c;比较s的第二个和T的第一个 如此循环 O(m*n)*/ #include<bits/stdc.h> using namespace std;int BF(char *str,char *sub) { //s…

聊聊SAP内存和ABAP内存

1、区别与联系 SAP内存&#xff08;SAP Memory&#xff09;和ABAP内存&#xff08;ABAP Memory&#xff09;&#xff0c;两者都可用于编程中的数据传递&#xff0c;将数据通过ID进行绑定&#xff0c;之后在其他程序中通过ID获取。 1.1、语法区别 1、SAP内存通过SET/GET PARA…

node.js实战 笔记 (补补前端Orz

Node.js是什么 Node.js是一个基于Chrome V8引擎的javascript运行环境。 Node.js使用一个事件驱动的非阻塞式IO模型。 Node.js和浏览器的区别 Node.js可以操作电脑&#xff0c;浏览器的javascript环境只能操作浏览器 Node.js多了一些内置模块&#xff0c;以及环境变量&#x…

【Redis】聊聊Redis常见数据类型底层结构

对于Redis来说&#xff0c;其实我们操作的数据类型就是String,List、Set、Zset、Hash&#xff0c;但是具体低层使用什么编码进行存储&#xff0c;在面试中是一个高频面试题&#xff0c;所以今天大概整理下对应的。 RedisObject与DictEntry 其实对于key来说一般都是String类型…

基于springboot+vue的在线互动学习网站

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

下载并安装ChatGPT Chrome扩展插件

解压 打开chrome浏览器并下面的步骤操作 参考链接&#xff1a; http://doc.xutongbao.top/docs/ai/994

华为配置Wi-Fi终端定位实验

配置Wi-Fi终端定位示例 组网图形 图1 配置Wi-Fi终端定位示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 管理员希望在已有WLAN覆盖业务的基础上&#xff0c;还可以定位覆盖区域内的终端位置信息。使用Wi-Fi终端定位方案&#xff0c;无需新…

C语言基础(十六)通过指针来输入和获取结构体的变量值

老样子&#xff0c;先看代码 #include <stdio.h> #include <string.h>#define NLEN 30 struct namect{char fname[NLEN];char lname[NLEN];int letters; };void getinfo(struct namect *); void makeinfo(struct namect *ptr); void showinfo(const struct namec…

如何在 Postman 中执行断言测试?

在当今的软件构建流程中&#xff0c;应用程序编程接口&#xff0c;简称 API&#xff0c;起到了不可或缺的作用&#xff0c;它们使得不同的软件应用能够互相沟通和交换数据。随着应用程序的不断演进变得越发复杂&#xff0c;保障API的可靠性及其稳定性显得格外关键。正因如此&am…