Logback SMTPAppender
의 전자 메일 속도를 제한하여 매번 최대 n 분마다 전자 메일을 보내도록 할 수 있습니까?Logback SMTPAppender 제한 속도
Logback appender에 따라 로깅을 설정했지만 구성 방법이나 서브 클래 싱 방법을 잘 모르겠습니다.
숨겨진 기능이 있습니까? 누군가이 문제를 처리하기 위해 하위 클래스를 개발 했습니까?
Logback SMTPAppender
의 전자 메일 속도를 제한하여 매번 최대 n 분마다 전자 메일을 보내도록 할 수 있습니까?Logback SMTPAppender 제한 속도
Logback appender에 따라 로깅을 설정했지만 구성 방법이나 서브 클래 싱 방법을 잘 모르겠습니다.
숨겨진 기능이 있습니까? 누군가이 문제를 처리하기 위해 하위 클래스를 개발 했습니까?
설명서에 따르면이 작업을 수행하는 방법은 각 이벤트의 타임 스탬프를보고 "충분한 시간"이 경과 한 후에 만 이벤트를 수락하는 EventEvaluator (예제 4.14 및 4.15 참조)를 작성하는 것으로 나타납니다 마지막 사건이 받아 들여졌다.
System.currentTimeMillis를 사용하면 시간 차이를 계산하기 위해 수학을 할 수있는 숫자를 얻을 수 있습니다. http://java.sun.com/javase/6/docs/api/java/lang/System.html#currentTimeMillis%28%29
이 기능을 요청하는 jira 항목을 제출하는 것이 좋습니다. 단지 묻는다면 구현 될 가능성이 높습니다.
Thorbjørn처럼 어 펜더가 메시지를 전송하는 속도를 제한하는 EventEvaluator
을 쉽게 만들 수 있습니다.
그러나 Logicback에서 DuplicateMessageFilter
을 지원하는 것으로 밝혀졌습니다. "DuplicateMessageFilter는 별도의 프리젠 테이션을 허용합니다.이 필터는 중복 메시지를 감지하고 반복 횟수를 초과하면 반복되는 메시지를 삭제합니다."
, BTW
Logback의 v0.9.26 해주기 SMTPAppender 메시지 버퍼의 크기를 설정할 수있다. 어제까지 최대 256 개의 메시지를 버퍼의 현재 콘텐 트로 보냈습니다.이 메시지는 목에 통증이 있었기 때문에 이메일의 마지막 메시지 만 표시하고 싶었습니다. 따라서이 질문에 대한 나의 해석에 따라 하나의 특정 오류 만 포함하는 주기적으로 반복되는 전자 메일 경고를 구현할 수 있습니다.
http://logback.qos.ch/manual/appenders.html#cyclicBufferSize
재미가있다.
동일한 문제를 해결하기 위해 맞춤식 평가판을 작성했습니다. ch.qos.logback.classic.boolex.OnMarkerEvaluator를 확장하지만 다른 평가 기는 기본으로 사용할 수 있습니다. 무음 간격 평가자가 수용 할 수있는 메시지가 많으면이를 무시합니다. 내 사용 사례에서는 괜찮 았지만 다른 행동이 필요한 경우에는 두 번째 체크를 추가하십시오.
public class LimitingOnMarkerEvaluator extends OnMarkerEvaluator {
private long lastSend = 0, interval = 0;
@Override
public boolean evaluate(ILoggingEvent event) throws EvaluationException {
if (super.evaluate(event)) {
long now = System.currentTimeMillis();
if (now - lastSend > interval) {
lastSend = now;
return true;
}
}
return false;
}
public long getInterval() {
return interval;
}
public void setInterval(long interval) {
this.interval = interval;
}
}
구성은 최대 하나의 메시지마다 천초 (약 17 분)을 보내 :
<evaluator class="package.LimitingOnMarkerEvaluator">
<marker>FATAL</marker>
<interval>1000000</interval>
</evaluator>
: http://code.google.com/p/throttled-smtp-appender/wiki/Usage를
나는 threadsafe 버전을 작성했지만 아직 오픈 소스를 공개하지 않았다.
이렇게 좋은 도구를 찾는 데 어려움이있는 이유는 SMTP가 실제 끝점이 아니라는 것입니다. loggly, airbrake 또는 수십 가지 다른 서비스를 사용하거나 logstash와 같은 것을 사용하여 자체 서버를 실행하십시오.
새 Whisper 첨부 파일을 살펴보십시오. 똑똑한 억압입니다. Maven 및 github를 통해 사용 가능 here
법적 고지 사항 : 저자입니다.
속도 제한은 풀어야 할 까다로운 문제 중 하나입니다. Logback이 이것을위한 간단한 해결책을 가지고 있다면 나는 놀랄 것이다. – skaffman
@ skaffman, 당신은 복잡성을 설명 할 수 있습니까? 덜 치명적인 오류가 발생한 후에도 치명적인 오류가 발생하는 경우이 오류로 인해 일부 오류가 숨길 수 있음을 이해합니다. – notnoop