项目场景:

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级别日志相关推荐

  1. android 是否允许打印debug级别日志的开关_Android学习——日志使用

    Android中日志工具类是Log(android.util.Log),这个类中提供了如下五个方法来供我们打印日志. Log.v().用于打印那些最为琐碎的.意义最小的日志信息.对应级别verbose ...

  2. android 是否允许打印debug级别日志的开关_log日志功能及设置方法

    log日志功能及设置方法的详细介绍,首先引入Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍,下面一起跟随小编过来看看吧. 一.日志级别(从低到高): DEB ...

  3. python打印不同颜色的字_Python 根据日志级别打印不同颜色的日志的方法示例

    本文介绍了Python 根据日志级别打印不同颜色的日志的方法示例,分享给大家,具体如下: # -*-coding:UTF-8-*- import logging import os import ti ...

  4. java日志系统简介: 从tomcat大量打印debug日志说起

    博客搬家至 https://lcy362.github.io/posts/4433/ 目前,java下应用最广泛的日志系统主要就是两个系列: log4j和slf4j+logback . 其中,slf4 ...

  5. Python 将日志输出到控制台,写入文件,根据不同日志级别打印不同颜色的日志

    参考链接:https://www.shuzhiduo.com/A/RnJWbDaBzq/ 代码 __all__ = ['get_logger', 'set_logger', 'debug', 'inf ...

  6. springboot启动不打印日志信息_springboot项目大量打印debug日志问题

    目前,java下应用最广泛的日志系统主要就是两个系列: log4j和slf4j+logback . 其中,slf4j只包含日志的接口,logback只包括日志的具体实现,两者加起来才是一个完整的日志系 ...

  7. 【FFmpeg】打印日志函数分析(可以根据不同级别打印不同颜色的日志)

    FFmpeg的打印日志实现在FFmpeg-n4.2.1/libavutil/log.c中. 一.设置log等级 1.设置日志级别 日志默认级别是AV_LOG_INFO static int av_lo ...

  8. java main 方法使用 HttpClients发送请求 不打印debug日志

    记录目的:java main 方法使用HttpClients发送请求不打印debug日志 记录背景: 使用java main方法测试接口响应时间 发现问题: 控制台打印巨多debug日志 解决方法: ...

  9. 问题:在 main 方法中使用 httpclient 时,idea 控制台会疯狂打印 DEBUG org.apache.http.wire 的日志

    问题:在 main 方法中使用 httpclient 时,idea 控制台会疯狂打印 DEBUG org.apache.http.wire 的日志,导致 C:\Users\shuang\AppData ...

  10. java占位符打印_java简单日志打印规范小记

    个人认为,如果公司一些基础类库不做约束,很可能"埋坑",形成技术债务,最终为此付出代价.本文讲解一个最基本的日志打印规范. 1. 日志打印组件 日志组件有很多,日志门面的选择有:S ...

最新文章

  1. c语言 程序 作文,编程之乐作文600字
  2. ssh免密登录linux服务器
  3. 贪吃蛇游戏(c/c++)
  4. 为mysql cluster添加sql节点
  5. java 新功能_Java 14的新功能
  6. 天津农学院计算机考研专业,2021年天津农学院计算机与信息工程学院考研专业目录_研究生考试范围 - 学途吧...
  7. php 集字抽奖,php字符集转换
  8. Spring-BeanDefinitionRegistryPostProcessor接口
  9. 计算机应用基础案例教程习题答案,计算机应用基础案例教程习题答案
  10. 浅析Hibernate映射(三)——继承映射
  11. 【渝粤教育】国家开放大学2018年春季 4990T电子商务概论(农) 参考试题
  12. spring 事务隔离级别和传播行为_Spring 事务传播行为
  13. 微积分知识总览(0)
  14. ENVI遥感处理(9):遥感影像镶嵌和图像裁剪
  15. mongodb WT_ERROR: non-specific WiredTiger error
  16. 城市信息学其二-城市人类动力学
  17. luoguP2123 皇后游戏(贪心)
  18. 浩辰cad2017破解版|浩辰电气cad2017无限使用破解版下载
  19. python实现位置定位_python定位位置
  20. 【软件工程】软工视频总结

热门文章

  1. ngix 全局配置文件和子配置文件 配置项中文注释
  2. vue实现滑块滑动校验
  3. 软媒魔方 v6.2.1.0 绿色纯净版及经典版
  4. 玩家浅谈MID平板电脑主流中端方案
  5. SCT12A0DHKR,2.7V-14V输入,30W高效全集成同步升压DCDC转换器,应用领域以及参考设计
  6. java8新特性-过滤
  7. mysql删除的表怎么恢复_误删除mysql数据库表该如何恢复操作方法
  8. 实验四|Python 企业偿债能力分析
  9. 专题地图符号设计与构图
  10. CGLIB动态代理模式详解