gpt4 book ai didi

java - 每次调用 logger.info/debug/warn() 调用时,只用 log4j 记录一次

转载 作者:可可西里 更新时间:2023-11-01 16:11:00 27 4
gpt4 key购买 nike

我有一个特定的日志消息可能会被打印很多次的场景(可能是数百万次)。例如,如果我们记录(使用 logger.warn() 方法)每条缺少字段的记录,我们最终可能会记录很多输入文件有很多记录的情况缺少字段(例如,HDFS 上的大文件)。这很快就会填满磁盘空间。

为避免这种情况,我尝试为每(例如)1000 条缺少字段的记录记录一次。我可以在 log4j 包之外实现所有这些逻辑,但我想知道是否有更简洁的方法来执行此操作。理想情况下,所有这些逻辑都将进入 log4j 代码。

这似乎是一个经常遇到的问题,但几乎没有关于此的任何信息。有什么想法吗?

最佳答案

Log4J 不能开箱即用。但是,您可以尝试编写自己的监听器。如果你想切换到 Logback 作为你的日志框架,有一个名为 DuplicateMessageFilter 的过滤器。在一定重复后丢弃消息。您真的应该考虑这一点,因为太多的日志记录肯定会影响您的性能。 Logback 的配置方式与 Log4J 相同,并且开箱即用地支持 SLF4J。

关于java - 每次调用 logger.info/debug/warn() 调用时,只用 log4j 记录一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31399989/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com