关于ESAPI无法打印debug级别日志
项目场景:
SpringBoot使用2.1.0版本的ESAPI日志输出。在使用ESAPI.Logger=x.x.x.JavaLogFactory无法打印debug级别日志,被迫将debug级别日志都是用info级别输出。再结合logback日志组件输出是。控制台无法正确的设置日志级别。
问题描述
在2.1.0版本的ESAPI中,使用JavaLogFactory无法通过调用.debug()输出日志,再结合logback只能使用info级别输出。
ESAPI.getLogger(loggers.getName()).debug("");//编译不报错,不能打印日志ESAPI.getLogger(loggers.getName()).info("");//可以打印日志。
原因分析:
首先查看2.1.0版本的ESAPI的JavaLogFactory打印日志的相关类,默认日志级别info,并且尝试设置级别失败setLevel()。查看JavaLogger,发现并未设置debug的级别,用的是Level.FINE=500,但是在2.2.3.0版本中,有明确设定了200级别。
2.1.0版本
public void debug(EventType type, String message) {this.log(Level.FINE, type, message, (Throwable)null);
}
2.2.3.0版本
public void debug(EventType type, String message, Throwable throwable) {this.log(200, type, message, throwable);
}
解决方案:
升级到2.2.3.0,还需更改ESAPI.properties配置文件中ESAPI.Logger属性,
ESAPI.Logger=org.owasp.esapi.reference.JavaLogFactory //2.1.0
修改为:
ESAPI.Logger=org.owasp.esapi.logging.java.JavaLogFactory //2.2.3.0
2.2.3.0版本在支持log4j基础上还支持slf4j。但是项目中使用的是结合 logback
,依赖中还需排除log4j。
<dependency><groupId>org.owasp.esapi</groupId><artifactId>esapi</artifactId><exclusions><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions></dependency>
由于项目中自己使用静态方法封装了
org.owasp.esapi.Logger logger = ESAPI.getLogger(loggers.getName());
并且使用ESAPI.Logger=org.owasp.esapi.logging.java.JavaLogFactory,会报错。(此处查看是版本不同导致的。)
NoClassDefFoundError: Could not initialize class org.owasp.esapi.logging.java.JavaLogFactory
所以换个工厂。使用
ESAPI.Logger=org.owasp.esapi.logging.slf4j.Slf4JLogFactory
就可以。
关于ESAPI无法打印debug级别日志相关推荐
- android 是否允许打印debug级别日志的开关_Android学习——日志使用
Android中日志工具类是Log(android.util.Log),这个类中提供了如下五个方法来供我们打印日志. Log.v().用于打印那些最为琐碎的.意义最小的日志信息.对应级别verbose ...
- android 是否允许打印debug级别日志的开关_log日志功能及设置方法
log日志功能及设置方法的详细介绍,首先引入Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍,下面一起跟随小编过来看看吧. 一.日志级别(从低到高): DEB ...
- python打印不同颜色的字_Python 根据日志级别打印不同颜色的日志的方法示例
本文介绍了Python 根据日志级别打印不同颜色的日志的方法示例,分享给大家,具体如下: # -*-coding:UTF-8-*- import logging import os import ti ...
- java日志系统简介: 从tomcat大量打印debug日志说起
博客搬家至 https://lcy362.github.io/posts/4433/ 目前,java下应用最广泛的日志系统主要就是两个系列: log4j和slf4j+logback . 其中,slf4 ...
- Python 将日志输出到控制台,写入文件,根据不同日志级别打印不同颜色的日志
参考链接:https://www.shuzhiduo.com/A/RnJWbDaBzq/ 代码 __all__ = ['get_logger', 'set_logger', 'debug', 'inf ...
- springboot启动不打印日志信息_springboot项目大量打印debug日志问题
目前,java下应用最广泛的日志系统主要就是两个系列: log4j和slf4j+logback . 其中,slf4j只包含日志的接口,logback只包括日志的具体实现,两者加起来才是一个完整的日志系 ...
- 【FFmpeg】打印日志函数分析(可以根据不同级别打印不同颜色的日志)
FFmpeg的打印日志实现在FFmpeg-n4.2.1/libavutil/log.c中. 一.设置log等级 1.设置日志级别 日志默认级别是AV_LOG_INFO static int av_lo ...
- java main 方法使用 HttpClients发送请求 不打印debug日志
记录目的:java main 方法使用HttpClients发送请求不打印debug日志 记录背景: 使用java main方法测试接口响应时间 发现问题: 控制台打印巨多debug日志 解决方法: ...
- 问题:在 main 方法中使用 httpclient 时,idea 控制台会疯狂打印 DEBUG org.apache.http.wire 的日志
问题:在 main 方法中使用 httpclient 时,idea 控制台会疯狂打印 DEBUG org.apache.http.wire 的日志,导致 C:\Users\shuang\AppData ...
- java占位符打印_java简单日志打印规范小记
个人认为,如果公司一些基础类库不做约束,很可能"埋坑",形成技术债务,最终为此付出代价.本文讲解一个最基本的日志打印规范. 1. 日志打印组件 日志组件有很多,日志门面的选择有:S ...
最新文章
- c语言 程序 作文,编程之乐作文600字
- ssh免密登录linux服务器
- 贪吃蛇游戏(c/c++)
- 为mysql cluster添加sql节点
- java 新功能_Java 14的新功能
- 天津农学院计算机考研专业,2021年天津农学院计算机与信息工程学院考研专业目录_研究生考试范围 - 学途吧...
- php 集字抽奖,php字符集转换
- Spring-BeanDefinitionRegistryPostProcessor接口
- 计算机应用基础案例教程习题答案,计算机应用基础案例教程习题答案
- 浅析Hibernate映射(三)——继承映射
- 【渝粤教育】国家开放大学2018年春季 4990T电子商务概论(农) 参考试题
- spring 事务隔离级别和传播行为_Spring 事务传播行为
- 微积分知识总览(0)
- ENVI遥感处理(9):遥感影像镶嵌和图像裁剪
- mongodb WT_ERROR: non-specific WiredTiger error
- 城市信息学其二-城市人类动力学
- luoguP2123 皇后游戏(贪心)
- 浩辰cad2017破解版|浩辰电气cad2017无限使用破解版下载
- python实现位置定位_python定位位置
- 【软件工程】软工视频总结