Cómo registrar advertencias repetidas solo una vez

Hay un patrón que ocurre de vez en cuando. Tengo un método llamado muchas veces, y contiene este fragmento:

Foo foo = getConfiguredFoo();
if (foo == null) {
  logger.warn("Foo not configured");
  foo = getDefaultFoo();
}

Entonces mi archivo de registro está abarrotado con esta advertencia cientos de veces. Sé que puedogrep, pero me pregunto si hay una mejor manera de ver esta advertencia solo una vez.

Nota: la duplicación de mensajes es un comportamiento correcto por defecto, por lo que no se trata de evitar mensajes duplicados involuntarios de registro. Etiqueté mi pregunta como log4j, pero estoy abierto a otros marcos de registro de Java.