首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么CommonsRequestLogging忽略日志级别配置?

CommonsRequestLogging是Spring框架提供的一个用于记录HTTP请求日志的工具类。它可以用来记录请求的URL、HTTP方法、请求参数、响应状态码等信息,方便开发人员在调试和排查问题时进行日志分析。

在默认情况下,CommonsRequestLogging会忽略日志级别配置,即无论日志级别设置为何值,它都会记录请求日志。这是因为CommonsRequestLogging的设计初衷是为了方便开发人员在调试阶段快速查看请求日志,而不受日志级别的限制。

然而,在生产环境中,由于请求日志的记录会占用一定的系统资源,因此通常会将日志级别设置为较高的级别,如WARN或ERROR,以避免过多的日志输出对系统性能造成影响。在这种情况下,CommonsRequestLogging的默认行为可能会导致大量的请求日志被记录,进而影响系统的性能。

为了解决这个问题,可以通过配置来控制CommonsRequestLogging的日志级别。具体而言,可以通过在Spring的配置文件中添加如下配置来指定日志级别:

代码语言:txt
复制
<bean id="requestLoggingFilter" class="org.springframework.web.filter.CommonsRequestLoggingFilter">
    <property name="beforeMessagePrefix" value="Incoming request: "/>
    <property name="afterMessagePrefix" value="Outgoing response: "/>
    <property name="includePayload" value="false"/>
    <property name="includeQueryString" value="false"/>
    <property name="includeHeaders" value="false"/>
    <property name="logger" ref="requestLogger"/>
</bean>

<bean id="requestLogger" class="org.apache.commons.logging.LogFactory" factory-method="getLog">
    <constructor-arg value="com.example.RequestLogger"/>
</bean>

<bean id="logLevelConfigurer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetObject" ref="requestLogger"/>
    <property name="targetMethod" value="setLevel"/>
    <property name="arguments">
        <list>
            <util:constant static-field="org.apache.commons.logging.LogFactory.WARN"/>
        </list>
    </property>
</bean>

上述配置中,通过设置LogFactory的级别为WARN,可以将CommonsRequestLogging的日志级别限制为WARN及以上级别,从而避免在生产环境中记录过多的请求日志。

需要注意的是,以上配置仅适用于使用CommonsRequestLoggingFilter进行请求日志记录的情况。如果使用其他方式进行请求日志记录,可能需要根据具体情况进行相应的配置。

推荐的腾讯云相关产品:腾讯云日志服务(CLS),它是一种全托管的日志管理服务,可以帮助用户实时采集、存储、检索和分析日志数据。腾讯云日志服务支持多种日志源,包括云服务器、容器、云函数、API网关等,可以满足各种场景下的日志管理需求。您可以通过以下链接了解更多关于腾讯云日志服务的信息:https://cloud.tencent.com/product/cls

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Log日志级别介绍及Logback配置指定包日志级别

Log日志级别介绍首先,先简单介绍一下日志级别,在软件开发过程中,日志是一种非常重要的调试和监控工具。日志级别是用来表示日志信息的重要程度和详细程度的。...Logback配置指定包日志级别介绍完日志级别之后,接下来开始开始在项目中控制不同包名的日志级别展示。在使用Logback作为日志框架时,我们可以通过配置文件来指定不同包的日志级别。...以下是一个Logback配置文件的示例,用于指定不同包的日志级别:<?xml version="1.0" encoding="UTF-8"?...result; }}运行程序,发现日志只有warn级别 - 获取首页数据成功,说明配置成功。...总结本文介绍了Log日志级别的概念和Logback配置指定包日志级别的方法。通过设置不同包的日志级别,我们可以更好地控制日志输出,提高程序的可维护性和性能。

2K21

Java日志详解:日志级别,优先级、配置文件、常见日志管理系统ELK、日志收集分析

在项目重构界面可以看到导入的内容把配置文件粘贴到src/main/resource文件夹下在代码中获取日志对象调用方法打印日志三、日志级别3.1 日志级别简介、优先级针对不同的场景,日志被分为五种不同的级别...为什么是debug而不是info、error或者其他呢?...;}意思是:如果log4j的配置中开启debug级别日志,那么我们就打印输出debug日志,其在输出日志中会被标记为DEBUG这样做的好处是:在我们开发阶段有时候需要查看特定数据,我们可以把日志级别定为...当产品发布上线之后,可以在log4j配置中去掉DEBUG级别,这时调试信息就不会输出在日志里,日志会只显示运行的相关信息。如此一来,控制输出什么日志 不需要修改代码,只需修改配置文件的参数而已。...这些框架提供了灵活的配置选项和丰富的功能,使得日志记录变得简单和高效。日志级别控制:日志框架通常支持不同的日志级别,如DEBUG、INFO、WARN、ERROR等。

40800
  • FFLIB C++ 异步&类型安全&printf风格的日志

    在调试时,开发人员经常会盯着控制台的输出,相比于普通级别日志内容,错误级别日志更应该引起开发注意力,所以重要级别日志在控制台输出时应该有彩色高亮显示。...log_t主要的功能有: l 支持对日志级别配置 l 支持对日志类别的配置 l 支持配置日志内容是否输出到文件和控制台 l 格式化日志 class log_t { public: log_t(...LOG_WARN, LOG_INFO, LOG_TRACE, LOG_DEBUG, LOG_LEVEL_NUM }; l -log_level 配置日志级别,0-5代表不同的日志级别...在明白此答案之前,先让我们缕一缕log中的结构: l 日志的接口会被多线程调用 l 异步日志接口会访问日志配置,判断该日志类别或级别是否已开启,由于只有读取操作,不需要加锁。...难道日志类别就没办法运行期修改了吗?脑筋急转弯一下,既然不能修改老的,为什么不创建一个新的,然后用新的替换老的?

    1.5K90

    日志导致线程Block的这些坑,你不得不防

    日志配置里明明是输出日志到文件,怎么会输出到Console PrintStream? 3.1.3 为什么会输出到Console?...上文提到StatusConsoleListener是注册在StatusLogger中,StatusLogger在交由StatusListener处理日志前,会判断日志级别,如果级别条件不满足,则忽略日志...,由于是ERROR级别日志,查看具体报错日志,发现如下图18所示的业务异常。...在blocking场景来说,可以通过配置log4j2.AsyncQueueFullPolicy=Discard来使用DISCARD策略忽略日志。...配置文件中设置Configuration的status属性值为fatal,则只有fatal级别日志才会输出,普通的error日志直接忽略,但fatal条件过于严苛,可能会忽略一些重要的error日志

    1.3K40

    python selenium2示例 - 日志管理

    1、logger: 提供日志接口,供应用程序调用。logger最常用的操作有两大类:配置和发送日志消息。 2、handler:将日志记录发送到合适的目的,比如文件、socket等等。...') 在console中将输出一下信息: WARNING:root:这是警告级别日志记录 为什么只输出了一条呢?...因为logging默认情况下的日志输出级别是:WANRING 日志格式和级别控制 接下来我们看看如何控制日志的输出格式和日志级别。...或文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略。...日志配置 在上述所有的示例中,日志配置都是在代码中实现,但在实际的应用过程中,我们一般都需要动态的配置日志信息,或是满足自定义的需要,下面我们就自定义日志配置进行示例演示: # 定义一个配置文件,这里命名为

    66140

    深入探究App压力测试的关键要点:从零开始学习Monkey

    简介Monkey 是 Google 提供的一个用于稳定性与压力测试的命令行工具可以运行在模拟器或者实际设备中它向系统发送伪随机的用户事件对软件进行稳定性与压力测试为什么要用 MonkeyMonkey 就是像猴子一样上蹿下跳地乱点为了测试软件的稳定性...,总共分 3 个级别adb shell monkey -v -v -v 10-s :用于指定伪随机数生成器的 seed(种子)值adb shell monkey -s 123 10...--ignore-timeouts:忽略超时--ignore-security-exceptions:忽略安全异常--ignore-native-crashes:忽略本地代码导致的崩溃异常--monitor-native-crashes...shell dumpsys activity | grep mFocusedActivity执行 8 小时:需要跑的时间/命令之间的时间间隔=要执行的次数 8*60*60*1000/300 = 96000日志级别...,ANR 问题:在日志中搜索 “ANR”崩溃问题:在日志中搜索 “CRASH”其他问题:在日志中搜索 “Exception”总结Monkey 简介Monkey 基本用法Monkey 事件选项

    10210

    -记录日志信息

    记录日志信息 配置 使用多个日志调度器 根据上下文修改记录信息 使用第三方日志器 LoggerAware Trait(代码复用) 你可以通过 log_message() 方法将信息记录在本地日志文件中...配置 你可以修改 /app/Config/Logger.php 配置文件来修改哪些级别的事件会被实际记录,以及为不同的事件等级分配不同的日志记录器等。...配置文件中的 threshold (报错阈值)决定了从哪个级别开始的事件将会在整个应用中记录下来。如果应用中有任何低于报错阈值的事件记录被记录时,这些请求将会被忽略。...所有报错等级低于5的日志记录请求 (包括运行时错误,系统错误等)将会被记录,而info, notice和debug级别的错误就会被忽略: public $threshold = 5; 关于报错级别和对应的阈值的列表列举在配置文件中以供参阅...每一种调度器可以独立地设置用于特定的错误等级,并忽略其他的。

    1.2K20

    Python 模块之logging

    一 前言 Python 的logging 模块定义的函数和类为应用程序和库实现了一个灵活的事件日志系统。该模块提供多种日志级别并且支持多种记录日志的方式比如 终端,文件等等。...2. logging 的日志级别 logging :提供了完整的日志体系,支持五种日志级别以便记录程序的执行过程。 DEBUG :详细信息,典型地调试问题的时候会使用。...默认的是WARNING,只有日志级别高于WARNING的日志信息才会输出,而输出有两种方式 一种输出控制台,也是默认的方式,另一种是记录到文件中,如日志文件。...该参数与'filename'不兼容,如果两个都有,'stream'将被忽略。 #!...logger.setLevel(logging.ERROR) #设置日志级别为ERROR,即只有日志级别大于等于ERROR的日志才会输出 logger.addHandler(handler_name

    37920

    万万没想到! logger.info() 还能导致线上故障?

    原因分析 这段代码主要有两个需要注意的地方: 日志级别为info,而线上环境是warn级别。我们可以得出结论,线上环境肯定不会输出这行日志。 打印日志的行为中有JSON序列化动作。...我们假设DTO是一个很小的对象,JSON序列化时间以及开销可以忽略不计,那么这行代码依然没有问题。...有同学就会说了,我不是info日志么,为什么还会执行这行代码?请继续往下看。我们首先看一下slf4j中logger.info()这个方法是如何申明的:第二个参数为Object类型。...很简单,在输入日志时加个级别判断(需要说明的是,这种规范很容易被忽略,比如项目成员更替时,很容易引入有问题的代码。...JSON序列化等耗时动作的话,那么日志级别判断就没必要了,比如下面这行代码: String reqId = "

    68120

    Spring Boot日志文件

    ❤️❤️❤️ Spring + Spring MVC + MyBatis专栏 前篇我们 讲完了SpringBoot的配置文件,讲解了为什么配置文件&配置文件的作用,还有两种配置文件的格式与使用。...日志级别可以帮你筛选出重要的信息,比如设置日志级别为 error,那么就可以只看程序的报错日志了,对于普通的调试日志和业务日志就可以忽略了,从而节省开发者信息筛选的时间。...Ⅲ、日志级别设置 日志级别配置只需要在配置文件中设置“logging.level”配置项即可: #开发模式 #设置默认端口号 server: port: 7777 #设置默认日志等级 logging...root: info com: example: springboard:info 有人说:我打印可以使用System.out.println()啊,为什么一定要使用日志呢...可配置性:日志框架可以通过配置文件来设置日志的输出格式、输出位置等信息,而System.out.println()则只能将日志输出到控制台。

    30420

    Pytest配置文件pytest.ini

    修改用例的命名规则配置日志格式,比代码配置更方便添加标签,防止运行过程报警告错误指定执行目录排除搜索目录pytest 配置- 改变运行规则# 执行check_开头和 test_开头的所有的文件,后面一定要加.../results添加默认参数后,输入pytest后,相当于下面这样直接输入一行,更方便pytest 配置- 指定/忽略执行目录# 设置执行的路径testpaths = bilibili baidu# 忽略某些文件夹.../目录norecursedirs = result logs datas test_demo*pytest 配置- 日志配置参考链接:pytest logging 收集日志 pytest.ini 文件配置日志级别...[pytest]# 日志开关 true falselog_cli = true# 输出到terminal# 日志级别log_cli_level = info# 打印详细日志,相当于命令行加 -vsaddopts...request.config.pluginmanager.get_plugin("logging-plugin") \ .set_log_path(return_path(log_name))总结 pytest.ini修改用例的命名规则配置日志格式

    11610

    Python开发之日志记录模块:logg

    甚至,只要日志设计得足够合理,还可以用于后续业务数据分析等。 2 日志等级 为什么需要对日志进行划分等级呢?...,当在程序中设定某个日志等级之后,比设定的日志等级低的日志记录将会被忽略,即logging就只会输出大于和等于设定的等级的日志。...那为什么会只输出后面3条日志记录呢?...logging也提供了一个模块级别的专用于配置logging的函数: 函数 说明 logging.basicConfig(**kwargs) 对root logger进行一次性配置 尝试使用一下这个配置函数...一个logger对象可以添加多个handler(例如既要在控制台输出日志,又要将日志写入到文件A,还要讲日志写入文件B,这就可以配置3个handler),每个handler又可以定义不同日志级别,以实现日志分级过滤显示

    1.3K20

    ZooKeeper日志配置

    第一行的日志配置中,默认配置日志消息的级别为 INFO,即所有低于 INFO 级别日志消息都会被丢弃,使用的 appender 为 CONSOLE。...该行配置了这个 appender 会忽略所有低于 INFO 级别的消息,因为 zookeeper.root.logger 中定义了全局阈值为 INFO。...我们通过布局模式定义了输出日志消息外还定义了输出日志级别、日期、线程信息和调用位置等信息。...除非 ROLLINGFILE 被 rootLogger 引用,否则该 appender 会被忽略。...上面配置设置了滚动输出日志路径以及文件最大大小。此外还使用布局类在日志输出前进行格式化操作。我们通过布局模式定义了输出日志消息外还定义了输出日志级别、日期、线程信息和调用位置等信息。

    4.4K40
    领券