草庐IT

DuplicateMessageFilter

全部标签

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

我有一个特定的日志消息可能会被打印很多次的场景(可能是数百万次)。例如,如果我们记录(使用logger.warn()方法)每条缺少字段的记录,我们最终可能会记录很多输入文件有很多记录的情况缺少字段(例如,HDFS上的大文件)。这很快就会填满磁盘空间。为避免这种情况,我尝试为每(例如)1000条缺少字段的记录记录一次。我可以在log4j包之外实现所有这些逻辑,但我想知道是否有更简洁的方法来执行此操作。理想情况下,所有这些逻辑都将进入log4j代码。这似乎是一个经常遇到的问题,但几乎没有关于此的任何信息。有什么想法吗? 最佳答案 Log