/** * {@inheritDoc} */ @Override public void secondAfterBody(ICoreService coreService, long methodId, long sensorTypeId, Object object, Object[] parameters, Object result, boolean exception, RegisteredSensorConfig rsc) { // NOCHK:8-params if (checker.isValid()) { // get the information from the parameters. We are expecting the // method: Priority.forcedLog (String, Priority, Object, Throwable) String level = String.valueOf(parameters[1]); if (!checker.shouldCapture(level)) { return; } long platformId = platformManager.getPlatformId(); LoggingData data = new LoggingData(); data.setLevel(level); data.setMessage(String.valueOf(parameters[2])); data.setPlatformIdent(platformId); data.setSensorTypeIdent(sensorTypeId); data.setMethodIdent(methodId); data.setTimeStamp(new Timestamp(System.currentTimeMillis())); coreService.addDefaultData(data); } } }
@Override public boolean matches(Object object) { if (!LoggingData.class.isInstance(object)) { return false; } LoggingData other = (LoggingData) object; if (data.getPlatformIdent() != other.getPlatformIdent()) { return false; } else if (data.getMethodIdent() != other.getMethodIdent()) { return false; } else if (data.getSensorTypeIdent() != other.getSensorTypeIdent()) { return false; } else if (!ObjectUtils.equals(data.getMessage(), other.getMessage())) { return false; } else if (!ObjectUtils.equals(data.getLevel(), other.getLevel())) { return false; } return true; } }
@Test(dataProvider = "allCombinationShouldWeCapture") public void checkForCorrectLogging(Level givenMinimumLevel, Level logThisLevel, Boolean shouldCapture) { Log4JLoggingHook hook = new Log4JLoggingHook(platformManager, givenMinimumLevel.toString()); long methodId = 1l; long sensorTypeId = 3l; long platformId = 9l; when(platformManager.getPlatformId()).thenReturn(platformId); String loggingMessage = "a logging message"; // we expect the method protected void forcedLog(String fqcn, Priority level, Object // message, Throwable Object[] params = new Object[4]; params[0] = "fqcn"; params[1] = logThisLevel; params[2] = loggingMessage; params[3] = null; hook.secondAfterBody(coreService, methodId, sensorTypeId, null, params, null, false, rsc); LoggingData loggingData = new LoggingData(logThisLevel.toString(), loggingMessage); loggingData.setMethodIdent(methodId); loggingData.setSensorTypeIdent(sensorTypeId); loggingData.setPlatformIdent(platformId); if (shouldCapture) { verify(coreService).addDefaultData(argThat(new LoggingDataVerifier(loggingData))); } else { verify(coreService, never()).addDefaultData(Mockito.<DefaultData> any()); } }
/** * {@inheritDoc} */ @Override public DetailsTable generate(DefaultData defaultData, RepositoryDefinition repositoryDefinition, Composite parent, FormToolkit toolkit) { LoggingData loggingData = (LoggingData) defaultData; DetailsTable table = new DetailsTable(parent, toolkit, "Logging Info", 1); table.addContentRow("Level:", InspectIT.getDefault().getImage(InspectITImages.IMG_LOGGING_LEVEL), new DetailsCellContent[] { new DetailsCellContent(loggingData.getLevel()) }); table.addContentRow("Message:", InspectIT.getDefault().getImage(InspectITImages.IMG_LOG), new DetailsCellContent[] { new DetailsCellContent(loggingData.getMessage()) }); return table; }
invocationSequenceHook.beforeBody(methodId2, sensorTypeId, object, parameters, rsc); LoggingData loggingData = new LoggingData(); invocationSequenceHook.addDefaultData(loggingData);
/** * {@inheritDoc} */ @Override public Object execute(ExecutionEvent event) throws ExecutionException { Object firstElement = ((StructuredSelection) HandlerUtil.getCurrentSelection(event)).getFirstElement(); if (firstElement instanceof LoggingData) { LoggingData loggingData = (LoggingData) firstElement; ClipboardUtil.textToClipboard(HandlerUtil.getActiveShell(event).getDisplay(), loggingData.getMessage()); } else if (firstElement instanceof InvocationSequenceData) { LoggingData loggingData = ((InvocationSequenceData) firstElement).getLoggingData(); ClipboardUtil.textToClipboard(HandlerUtil.getActiveShell(event).getDisplay(), loggingData.getMessage()); } return null; }
return false; } else if (!loggingData.equals(other.loggingData)) { return false;
styledString.append("[" + loggingData.getLevel().toUpperCase() + "] "); styledString.append(loggingData.getMessage());