use of eu.bcvsolutions.idm.core.api.audit.dto.filter.IdmLoggingEventFilter in project CzechIdMng by bcvsolutions.
the class LoggingEventMonitoringEvaluator method evaluate.
@Override
public IdmMonitoringResultDto evaluate(IdmMonitoringDto monitoring) {
IdmMonitoringResultDto result = new IdmMonitoringResultDto();
ResultModel resultModel;
//
IdmLoggingEventFilter filter = new IdmLoggingEventFilter();
filter.setLevelString(LogType.ERROR);
Long givenNumberOfDays = getParameterConverter().toLong(monitoring.getEvaluatorProperties(), PARAMETER_NUMBER_OF_DAYS);
if (givenNumberOfDays != null) {
filter.setFrom(ZonedDateTime.now().truncatedTo(ChronoUnit.DAYS).minusDays(givenNumberOfDays));
}
long count = loggingEventService.count(filter);
//
if (count > 0) {
resultModel = new DefaultResultModel(CoreResultCode.MONITORING_LOGGING_EVENT_ERROR, ImmutableMap.of("count", Long.toString(count)));
} else {
resultModel = new DefaultResultModel(CoreResultCode.OK);
}
//
result.setResult(new OperationResultDto.Builder(OperationState.EXECUTED).setModel(resultModel).build());
result.setValue(String.valueOf(count));
//
return result;
}
use of eu.bcvsolutions.idm.core.api.audit.dto.filter.IdmLoggingEventFilter in project CzechIdMng by bcvsolutions.
the class IdmDbAppenderTest method append.
@Test
public void append() {
final IdmDbAppender appender = new IdmDbAppender(loggingEventService, eventExceptionService, propertyService);
LoggerContext context = new LoggerContext();
final Logger logger = context.getLogger(IdmDbAppenderTest.class);
final RuntimeException runtimeException = new RuntimeException();
runtimeException.setStackTrace(new StackTraceElement[] { new StackTraceElement(IdmDbAppenderTest.class.getCanonicalName(), "test", "file", 0) });
ILoggingEvent loggingEvent = new LoggingEvent(IdmDbAppenderTest.class.getCanonicalName(), logger, Level.ERROR, "TEST", runtimeException, new String[] {});
appender.append(loggingEvent);
IdmLoggingEventFilter eventFilter = new IdmLoggingEventFilter();
eventFilter.setLoggerName(IdmDbAppenderTest.class.getCanonicalName());
final List<IdmLoggingEventDto> foundEvents = loggingEventService.find(eventFilter, null).getContent();
Assert.assertEquals(1, foundEvents.size());
final IdmLoggingEventDto loggingEventDto = foundEvents.get(0);
Assert.assertEquals("TEST", loggingEventDto.getFormattedMessage());
Assert.assertEquals(IdmDbAppenderTest.class.getCanonicalName(), loggingEventDto.getLoggerName());
Assert.assertEquals("ERROR", loggingEventDto.getLevelString().name());
IdmLoggingEventExceptionFilter loggingEventExceptionFilter = new IdmLoggingEventExceptionFilter();
loggingEventExceptionFilter.setEvent((Long) loggingEventDto.getId());
//
final List<IdmLoggingEventExceptionDto> exceptions = eventExceptionService.find(loggingEventExceptionFilter, null).getContent();
Assert.assertEquals(2, exceptions.size());
IdmLoggingEventExceptionDto exceptionDto = exceptions.stream().filter(e -> ((long) e.getId()) == 1l).findFirst().get();
Assert.assertTrue(exceptionDto.getTraceLine().contains("test"));
Assert.assertTrue(exceptionDto.getTraceLine().contains("file"));
Assert.assertTrue(exceptionDto.getTraceLine().contains("0"));
}
use of eu.bcvsolutions.idm.core.api.audit.dto.filter.IdmLoggingEventFilter in project CzechIdMng by bcvsolutions.
the class DefaultIdmLoggingEventService method getEntity.
@Override
protected IdmLoggingEvent getEntity(Serializable id, BasePermission... permission) {
Assert.notNull(id, "Identifier is requiered for load an log event.");
IdmLoggingEventFilter filter = new IdmLoggingEventFilter();
filter.setId(Long.valueOf(id.toString()));
List<IdmLoggingEventDto> entities = this.find(filter, null, permission).getContent();
if (entities.isEmpty()) {
return null;
}
// for given id must found only one entity
IdmLoggingEvent entity = this.toEntity(entities.get(0));
return checkAccess(entity, permission);
}
use of eu.bcvsolutions.idm.core.api.audit.dto.filter.IdmLoggingEventFilter in project CzechIdMng by bcvsolutions.
the class RemoveOldLogsTaskExecutor method process.
@Override
public Boolean process() {
ZonedDateTime dateTimeTill = ZonedDateTime.now().minusDays(numberOfDays);
//
IdmLoggingEventFilter filter = new IdmLoggingEventFilter();
filter.setTill(dateTimeTill);
// only for get total elements
Page<IdmLoggingEventDto> loggingEvents = loggingEventService.find(filter, PageRequest.of(0, 1, Sort.by(IdmLoggingEvent_.timestmp.getName())));
//
this.count = loggingEvents.getTotalElements();
this.setCounter(0l);
this.updateState();
//
int deletedItems = loggingEventService.deleteLowerOrEqualTimestamp(dateTimeTill.toInstant().toEpochMilli());
this.setCounter(Long.valueOf(deletedItems));
//
LOG.info("Removed logs older than [{}] days was successfully completed. Removed logs [{}].", numberOfDays, this.counter);
//
return Boolean.TRUE;
}
Aggregations