@Override public void log(TrackingEvent event) { _checkState(); boolean doLog = filterCheck ? isLoggable(event) : true; if (doLog) { try { if (!_limiter(1, event.getSize())) { return; } if (ttl != TTL.TTL_CONTEXT) { event.setTTL(ttl); } _log(event.sign()); loggedEvents.incrementAndGet(); loggedSnaps.addAndGet(event.getOperation().getSnapshotCount()); lastTime.set(System.currentTimeMillis()); errorState = false; if (!logListeners.isEmpty()) { notifyListeners(new SinkLogEvent(this, event)); } } catch (Throwable ex) { notifyListeners(new SinkLogEvent(this, event), ex); } } }