/** protected by config's audit lock */ private void storeLogItem(AuditLogItem item) throws IOException { switch (getLoggerStatus()) { case QUEUEING: queuedItems.add(item); break; case LOGGING: writeLogItem(item); break; case DISABLE_NEXT: writeLogItem(item); config.setLoggerStatus(Status.DISABLED); case DISABLED: // switch to the fast path for the next event runDisabledFastPath.set(true); break; } }
/** protected by config's audit lock */ private void storeLogItem(AuditLogItem item) throws IOException { switch (getLoggerStatus()) { case QUEUEING: queuedItems.add(item); break; case LOGGING: writeLogItem(item); break; case DISABLE_NEXT: writeLogItem(item); config.setLoggerStatus(Status.DISABLED); case DISABLED: // switch to the fast path for the next event runDisabledFastPath.set(true); break; } }
@Override public void setLoggerStatus(final Status newStatus) { config.lock(); try { if (newStatus == Status.DISABLE_NEXT && config.getLoggerStatus() == Status.DISABLED) { return; } config.setLoggerStatus(newStatus); if (newStatus == Status.LOGGING){ for (AuditLogItem record : queuedItems) { try { writeLogItem(record); } catch (Exception e) { handleLoggingException(e); } } queuedItems.clear(); } else if (newStatus == Status.DISABLED){ queuedItems.clear(); } runDisabledFastPath.set(false); } finally { config.unlock(); } }
@Override public void setLoggerStatus(final Status newStatus) { config.lock(); try { if (newStatus == Status.DISABLE_NEXT && config.getLoggerStatus() == Status.DISABLED) { return; } config.setLoggerStatus(newStatus); if (newStatus == Status.LOGGING){ for (AuditLogItem record : queuedItems) { try { writeLogItem(record); } catch (Exception e) { handleLoggingException(e); } } queuedItems.clear(); } else if (newStatus == Status.DISABLED){ queuedItems.clear(); } runDisabledFastPath.set(false); } finally { config.unlock(); } }
@Override public void setLoggerStatus(final Status newStatus) { config.lock(); try { if (newStatus == Status.DISABLE_NEXT && config.getLoggerStatus() == Status.DISABLED) { return; } config.setLoggerStatus(newStatus); if (newStatus == Status.LOGGING){ for (AuditLogItem record : queuedItems) { try { writeLogItem(record); } catch (Exception e) { handleLoggingException(e); } } } else if (newStatus == Status.DISABLED){ queuedItems.clear(); } } finally { config.unlock(); } }
/** protected by config's audit lock */ private void storeLogItem(AuditLogItem item) throws IOException { switch (getLoggerStatus()) { case QUEUEING: queuedItems.add(item); break; case LOGGING: writeLogItem(item); break; case DISABLE_NEXT: writeLogItem(item); config.setLoggerStatus(Status.DISABLED); case DISABLED: // ignore break; } }
@Override public void startBoot() { config.lock(); try { config.setBooting(true); if (childImpls != null) { childImpls.clear(); } config.setLoggerStatus(Status.QUEUEING); } finally { config.unlock(); } }
@Override public void startBoot() { config.lock(); try { config.setBooting(true); if (childImpls != null) { childImpls.clear(); } config.setLoggerStatus(Status.QUEUEING); } finally { config.unlock(); } }
@Override public void startBoot() { config.lock(); try { config.setBooting(true); if (childImpls != null) { childImpls.clear(); } config.setLoggerStatus(Status.QUEUEING); } finally { config.unlock(); } }