首页 > 编程语言 >【MonitorUtil】java报错日志工具类

【MonitorUtil】java报错日志工具类

时间:2024-11-12 16:43:23浏览次数:1  
标签:PrintWriter java String MonitorUtil stringWriter 报错 result new customMsg

 

自定义报警日志打印工具
import org.apache.commons.lang.StringUtils;
import java.io.PrintWriter;
import java.io.StringWriter;

/**
 * 自定义报警日志打印工具
 *
 * @author Angel挤一挤
 * @date 2022/12/13
 */
public class MonitorUtil {



  

    /**
     * 处理自定义报警消息 默认Msg长度300
     *
     * @param e
     * @param customMsg
     * @return
     */
    public static String alarmMsg(Exception e, String customMsg) {
        return alarmMsg(e, customMsg, 300);
    }

    /**
     * 重载 处理自定义报警消息
     *
     * @param e
     * @param customMsg
     * @param splitLength 切割长度
     * @return
     */
    private static String alarmMsg(Exception e, String customMsg, Integer splitLength) {
        StringBuilder result = new StringBuilder();
        if (StringUtils.isNotEmpty(customMsg)) {
            result.append(customMsg).append(":");
        }
        if (e != null) {
            StringWriter stringWriter = new StringWriter();
            PrintWriter writer = new PrintWriter(stringWriter);
            e.printStackTrace(writer);
            StringBuffer buffer = stringWriter.getBuffer();
            String errMsg = buffer.toString();
            result.append(errMsg);
        }

        return splitLength != null && splitLength > 0
                ? (result.length() > splitLength ? result.substring(0, splitLength) : result.toString())
                : result.toString();
    }

    public static String getErrMsg(Exception e) {
        StringBuilder result = new StringBuilder();
        if (e != null) {
            StringWriter stringWriter = new StringWriter();
            PrintWriter writer = new PrintWriter(stringWriter);
            e.printStackTrace(writer);
            StringBuffer buffer = stringWriter.getBuffer();
            String errMsg = buffer.toString();
            result.append(errMsg);
        }

        return result.toString();
    }

    public static String getErrMsg(String customMsg, Exception e) {
        StringBuilder result = new StringBuilder();
        if (StringUtils.isNotBlank(customMsg)) {
            result.append(customMsg);
        }
        if (e != null) {
            StringWriter stringWriter = new StringWriter();
            PrintWriter writer = new PrintWriter(stringWriter);
            e.printStackTrace(writer);
            StringBuffer buffer = stringWriter.getBuffer();
            String errMsg = buffer.toString();
            result.append(errMsg);
        }

        return result.toString();
    }

}

 

标签:PrintWriter,java,String,MonitorUtil,stringWriter,报错,result,new,customMsg
From: https://www.cnblogs.com/sxdcgaq8080/p/18542215

相关文章

  • 《Java核心技术 卷I》图形用户界面使用字体
    使用字体字体名(fontfacename)指定一种字体,字体名由字体族名(fontfamilyname)和一个可选的后缀(如果"Bold")组成,例如,“Helvetica”和"HelveticaBold"都属于名为“Helvetica”字体族的字体。要想知道某台特定计算机上可用的字体,可以调用GraphicsEnvironment类的getAvaila......
  • 深入 Java 多线程:解锁并发编程的奥秘
    在当今的软件开发世界中,性能和高并发是衡量一个应用程序成败的关键因素。无论是处理高流量的网络请求、执行复杂的数据分析任务,还是管理后台服务中的资源,Java多线程编程都是开发者必备的技能之一。本文将带领你深入Java多线程的世界,解锁并发编程的奥秘。1.并发与并行的区......
  • 2024年Java 八股文-基础篇
    1.为什么说Java语言“编译与解释并存”?高级编程语言按照程序的执行方式分为编译型和解释型两种。简单来说,编译型语言是指编译器针对特定的操作系统将源代码一次性翻译成可被该平台执行的机器码;解释型语言是指解释器对源程序逐行解释成特定平台的机器码并立即执行。比如,你......
  • Java中2个Integer比较相同的4种方式
    Java中2个Integer比较相同的4种方式概要使用前切记Integer的范围是【-128~127】例如:Integera=128;Integerb=128;1,使用==比较【-128~127】区间内返回true,否则返回false//==比较if(a==b){System.out.println("a,b使用==比较返回结果:true");......
  • 20天精通Java,day1
    面向对象编程static(静态):修饰成员变量和成员方法。类变量和类方法:有static修饰,属于类,在计算机中只有一份,会被类的全部对象共享。既可以通过类名访问(推荐),也可以通过对象名访问。类变量应用场景:在开发中如果某个数据只需要一份,且希望能够被共享(访问,修改),则该数据可以被定义成类......
  • 【JAVA】Java基础—面向对象编程:构造方法-实现一个Car类,包含多个构造方法,创建不同的汽
    在Java中,构造方法则是用于创建对象的特殊方法。通过构造方法,可以在创建对象时初始化其属性。构造方法的重载允许我们根据不同的需求定义多个构造方法,从而灵活地创建对象。我们可以将汽车的构造方法比作汽车的配置选项。比如,当你购买一辆汽车时,你可以选择不同的配置,如颜色、型......
  • 新手入门Java自动化测试的利器:Selenium WebDriver
    新手入门Java自动化测试的利器:SeleniumWebDriver今天我们将深入探讨一款强大的Java自动化测试工具——SeleniumWebDriver。在正式介绍SeleniumWebDriver之前,让我们首先对Selenium本身进行简要概述,以便更好地理解其背景和功能。官方学习网站:https://www.selenium.dev/Sele......
  • ssm093基于Java Web的毕业生就业状况管理系统设计与实现+jsp(论文+源码)_kaic
     毕业设计(论文)题目:毕业生就业状况管理系统设计与实现摘 要现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本毕业生就业状况管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内......
  • javaWeb开发实战:spring MVC+MyBatis实现网页登录验证
    1.环境和工具Idea2019、Tomcat8、Jdk82.新建springMVC项目打开idea,新建项目,选择springMVC->next:填写项目名、路径->finish完成创建3.项目属性配置文件(file)->项目结构:检查sdk、模块设置是否正确。4.运行调试配置Addconfigration点击“+”号,选择tomcat->loca......
  • uniapp中uni.setTabBarItem方法在非tabbar页面使用会报错
    背景:uniapp在开发小程序多语言切换功能时,使用uni.setTabBarItem方法切换tabbar语言时报错,查阅文档发现微信小程序该功能只能在tabbar页面或其子页面中使用,不能在其他页面直接使用。解决:在tabbar页面中使用onShow方法监听切换语言设置,部分代码示例如下:<scriptsetup>import{......