package com.example.logbackException.logback;
import ch.qos.logback.classic.spi.IThrowableProxy;
import ch.qos.logback.classic.spi.ThrowableProxy;
import org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter;
import org.springframework.core.env.Environment;
import org.springframework.util.StringUtils;
public class ExceptionLogCompressConverter extends ExtendedWhitespaceThrowableProxyConverter {
private static Boolean isCompress = Boolean.TRUE;
private static String defaultCauseDepth = "1";
private static String defaultStackDepth = "2";
@Override
protected String throwableProxyToString(IThrowableProxy tp) {
getEnvironment();
if (!isCompress) {
return super.throwableProxyToString(tp);
}
//压缩后的异常日志
StringBuffer sb = new StringBuffer();
reversePrintStackCause(tp, sb);
return sb.toString();
}
private void reversePrintStackCause(IThrowableProxy tp, StringBuffer sb) {
Counter causeCounter = new Counter();
reversePrintStackCause((ThrowableProxy) tp, Integer.parseInt(defaultCauseDepth), causeCounter, Integer.parseInt(defaultStackDepth), sb);
}
private void reversePrintStackCause(ThrowableProxy tp, int causeDepth, Counter causeCounter, int stackDepth, StringBuffer sb) {
if (tp == null) {
return;
}
if (tp.getCause() != null) {
reversePrintStackCause((ThrowableProxy) tp.getCause(), causeDepth, causeCounter, stackDepth, sb);
}
int stackDepths = tp.getThrowable().getStackTrace().length;
if (stackDepth < stackDepths) {
stackDepths = stackDepth;
}
if (causeCounter.count++ < causeDepth) {
printStack(tp, stackDepths, sb);
}
}
private void printStack(ThrowableProxy tp, int stackDepths, StringBuffer sb) {
Throwable throwable = tp.getThrowable();
StackTraceElement[] stackTraces = throwable.getStackTrace();
if (sb.lastIndexOf("\t") > -1) {
sb.deleteCharAt(sb.length() - 1);
sb.append("Caused");
}
sb.append(throwable.getClass().getName()).append(":").append(throwable.getMessage()).append("\n\t");
for (int i = 0; i < stackDepths; i++) {
StackTraceElement stackTrace = stackTraces[i];
sb.append(compressClassName(stackTrace.getClassName()))
.append("#")
.append(stackTrace.getMethodName())
.append(":")
.append(stackTrace.getLineNumber())
.append("\n\t");
}
}
private StringBuffer compressClassName(String className) {
String[] split = className.split("\\.");
StringBuffer newClassName = new StringBuffer();
for (int i = 0; i < split.length - 1; i++) {
newClassName.append(split[i], 0, 1).append(".");
}
newClassName.append(split[split.length - 1]);
return newClassName;
}
// 从yml文件中获取参数
private void getEnvironment() {
Environment environment = BeanUtils.getApplicationContext().getEnvironment();
String causeDepth = environment.getProperty("causeDepth");
String stackDepth = environment.getProperty("stackDepth");
String compress = environment.getProperty("compress");
if (!StringUtils.isEmpty(causeDepth)) {
defaultCauseDepth = causeDepth;
}
if (!StringUtils.isEmpty(stackDepth)) {
defaultStackDepth = stackDepth;
}
if (!StringUtils.isEmpty(compress) && "false".equals(compress)) {
isCompress = Boolean.FALSE;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Logback 异常日志减少打印内容
共92个文件
xml:66个
java:5个
class:4个
0 下载量 77 浏览量
2024-01-03
17:28:40
上传
评论
收藏 14.35MB ZIP 举报
温馨提示
Logback 异常日志减少打印内容
资源推荐
资源详情
资源评论
收起资源包目录
logbackException.zip (92个子文件)
logbackException
logbackException
HELP.md 431B
logbackException.iml 7KB
pom.xml 3KB
src
test
java
com
example
logbackException
LogbackExceptionApplicationTests.java 290B
main
resources
application.properties 136B
logback-spring111.xml 1KB
logback-spring.xml 9KB
java
com
example
logbackException
LogbackExceptionApplication.java 1KB
controller
logback
ExceptionLogCompressConverter.java 4KB
BeanUtils.java 1KB
Counter.java 122B
target
classes
application.properties 136B
logback-spring.xml 9KB
com
example
logbackException
logback
Counter.class 1KB
BeanUtils.class 1KB
ExceptionLogCompressConverter.class 5KB
LogbackExceptionApplication.class 2KB
test-classes
logbackException-1.0.1-SNAPSHOT.jar.original 9KB
maven-status
maven-compiler-plugin
compile
default-compile
createdFiles.lst 240B
inputFiles.lst 484B
testCompile
default-testCompile
createdFiles.lst 0B
inputFiles.lst 129B
logbackException-1.0.1-SNAPSHOT.jar 15.91MB
maven-archiver
pom.properties 106B
generated-test-sources
test-annotations
generated-sources
annotations
.gitignore 395B
.idea
logbackException.iml 344B
libraries
Maven__org_springframework_spring_expression_5_1_4_RELEASE.xml 658B
Maven__org_slf4j_jul_to_slf4j_1_7_25.xml 534B
Maven__net_minidev_accessors_smart_1_2.xml 542B
Maven__org_yaml_snakeyaml_1_23.xml 495B
Maven__org_springframework_boot_spring_boot_starter_2_1_2_RELEASE.xml 692B
Maven__org_hamcrest_hamcrest_library_1_3.xml 553B
Maven__org_springframework_boot_spring_boot_starter_tomcat_2_1_2_RELEASE.xml 741B
Maven__org_springframework_spring_test_5_1_4_RELEASE.xml 616B
Maven__org_hamcrest_hamcrest_core_1_3.xml 532B
Maven__org_springframework_spring_webmvc_5_1_4_RELEASE.xml 630B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml 644B
Maven__org_springframework_boot_spring_boot_2_1_2_RELEASE.xml 636B
Maven__net_bytebuddy_byte_buddy_1_9_7.xml 529B
Maven__org_springframework_boot_spring_boot_starter_logging_2_1_2_RELEASE.xml 748B
Maven__ch_qos_logback_logback_core_1_2_3.xml 547B
Maven__org_apache_logging_log4j_log4j_api_2_11_1.xml 573B
Maven__org_springframework_boot_spring_boot_starter_test_2_1_2_RELEASE.xml 727B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_8.xml 674B
Maven__org_springframework_spring_beans_5_1_4_RELEASE.xml 623B
Maven__com_fasterxml_jackson_core_jackson_core_2_9_8.xml 595B
Maven__org_skyscreamer_jsonassert_1_5_0.xml 537B
Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_1.xml 608B
Maven__org_springframework_spring_jcl_5_1_4_RELEASE.xml 609B
Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_1_2_RELEASE.xml 769B
Maven__junit_junit_4_12.xml 455B
Maven__org_slf4j_slf4j_api_1_7_25.xml 513B
Maven__org_springframework_spring_aop_5_1_4_RELEASE.xml 609B
Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml 700B
Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_8.xml 729B
Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_14.xml 660B
Maven__org_ow2_asm_asm_5_0_4.xml 472B
Maven__ch_qos_logback_logback_classic_1_2_3.xml 568B
Maven__net_bytebuddy_byte_buddy_agent_1_9_7.xml 571B
Maven__org_springframework_spring_context_5_1_4_RELEASE.xml 637B
Maven__com_fasterxml_jackson_core_jackson_databind_2_9_8.xml 623B
Maven__javax_annotation_javax_annotation_api_1_3_2.xml 611B
Maven__org_springframework_spring_core_5_1_4_RELEASE.xml 616B
Maven__javax_validation_validation_api_2_0_1_Final.xml 611B
Maven__net_minidev_json_smart_2_3.xml 507B
Maven__org_springframework_spring_web_5_1_4_RELEASE.xml 609B
Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_14.xml 625B
Maven__org_xmlunit_xmlunit_core_2_6_2.xml 535B
Maven__org_springframework_boot_spring_boot_starter_json_2_1_2_RELEASE.xml 727B
Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml 608B
Maven__com_jayway_jsonpath_json_path_2_4_0.xml 546B
Maven__org_mockito_mockito_core_2_23_4.xml 542B
Maven__com_fasterxml_classmate_1_4_0.xml 522B
Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_14.xml 611B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_8.xml 688B
Maven__org_springframework_boot_spring_boot_starter_web_2_1_2_RELEASE.xml 720B
Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_2_RELEASE.xml 734B
Maven__org_projectlombok_lombok_1_18_4.xml 524B
Maven__org_springframework_boot_spring_boot_test_2_1_2_RELEASE.xml 671B
Maven__org_hibernate_validator_hibernate_validator_6_0_14_Final.xml 681B
Maven__org_objenesis_objenesis_2_6.xml 508B
Maven__org_assertj_assertj_core_3_11_1.xml 542B
vcs.xml 188B
workspace.xml 1.32MB
misc.xml 529B
compiler.xml 839B
modules.xml 313B
.gitignore 39B
encodings.xml 194B
logs
web-app
2023-12-24
info
info.2023-12-24-09.0.log 12KB
2023-12-28
info
info.2023-12-28-09.0.log 26KB
2023-12-27
info
info.2023-12-27-16.0.log 3KB
共 92 条
- 1
资源评论
大胖墩,哈哈
- 粉丝: 16
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- docker一键安装包
- Screenshot_20240430_144340_com.ss.android.ugc.live.jpg
- 回到山沟沟.mp3
- 基于matlab实现自适应波束形成RLS及LMS算法仿真源程序1.rar
- 基于matlab实现自己编写的基于卡尔曼滤波的利用加速度传感器的计步器,测试数据是传感器放在腰部和手臂 .rar
- 基于matlab实现阵列信号处理,波束形成.rar
- 111111111111111111
- 基于matlab实现计步器编程;对当前的计步器装置的数值算法模拟 .rar
- Mdb学习查看PW;access;mdb;pw;password;patch
- 基于matlab实现关于语音信号声源定位DOA估计所用的一些传统算法.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功