Мы делаем это всякий раз, когда регистрируется ошибка.Вот соответствующая часть нашей конфигурации log4j:
<appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="Threshold" value="ERROR"/>
<param name="To" value="email@our.domain"/>
<param name="From" value="server@our.domain"/>
<param name="Subject" value="Error"/>
<param name="SMTPHost" value="our.host"/>
<param name="BufferSize" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{ABSOLUTE},%c] %m%n"/>
</layout>
</appender>
Сама регистрация ведется с использованием регистрации Apache Commons в качестве оболочки вокруг log4j.
Обратите внимание, что вы все равно можете пропустить некоторые исключения, если онирегистрируются как предупреждения, но это должно быть преднамеренным в этом случае, и вы, как правило, не хотите получать электронное письмо каждый каждый раз, когда возникает "ожидаемое" исключение.