private TraceeContextLogger(ContextLoggerConfiguration contextLoggerConfiguration) { this.contextLoggerConfiguration = contextLoggerConfiguration; initConnectors(); }
@Override public void logJson(Object... instancesToLog) { this.logJsonWithPrefixedMessage(null, instancesToLog); }
@Override public String createJson(Object... instancesToLog) { return propagateToContextLogBuilder(instancesToLog); }
public static ContextLogger createDefault() { return create().build(); }
@Override public void logJsonWithPrefixedMessage(String prefixedMessage, Object... instancesToLog) { this.connectorsWrapper.sendErrorReportToConnectors(prefixedMessage, createJson(instancesToLog)); }
public static ContextLoggerBuilder create() { TraceeContextLogger contextLoggerInstance = new TraceeContextLogger(ContextLoggerConfiguration.getOrCreateContextLoggerConfiguration()); return new ContextLoggerBuilderImpl(contextLoggerInstance); }
return createInstance(contextLoggerConfiguration.getImplicitContextClassMap().get(instance)); Object wrappedInstance = createInstance(knownWrapperType); if (WrappedContextData.class.isAssignableFrom(knownWrapperType)) { ((WrappedContextData) wrappedInstance).setContextData(instance); if (wrapper.getWrappedInstanceType().isAssignableFrom(instance.getClass())) { try { WrappedContextData wrapperInstance = (WrappedContextData) createInstance(wrapper.getWrapperType()); wrapperInstance.setContextData(instance);
/** * This method handles the wrapping of the incoming object and passes them to the context toJson builder implementation. * * @param instancesToLog an array of objects to wrap * @return the contextual toJson information as a String */ String propagateToContextLogBuilder(Object[] instancesToLog) { Object[] propagateArray = null; if (instancesToLog != null) { propagateArray = new Object[instancesToLog.length]; for (int i = 0; i < instancesToLog.length; i++) { propagateArray[i] = wrapInstance(instancesToLog[i]); } } return traceeContextLogBuilder.createStringRepresentationForPassedDataContextProvider(new PassedDataContextProvider(propagateArray, traceeContextLogBuilder.getKeepOrder())); }
private void handleHttpServletRequest(HttpServletRequest servletRequest, HttpServletResponse servletResponse, Throwable e) { TraceeContextLogger .create() .enforceOrder() .apply() .logWithPrefixedMessage(MessagePrefixProvider.provideLogMessagePrefix(MessageLogLevel.ERROR, TraceeErrorLoggingFilter.class), CoreImplicitContextProviders.COMMON, CoreImplicitContextProviders.TRACEE, servletRequest, servletResponse, servletRequest.getSession(false), e); }
/** * Sends the error reports to all connectors. * * @param proceedingJoinPoint the aspectj calling context * @param annotatedId the id defined in the watchdog annotation */ void sendErrorReportToConnectors(ProceedingJoinPoint proceedingJoinPoint, String annotatedId, Throwable e) { // try to get error message annotation ErrorMessage errorMessage = WatchdogUtils.getErrorMessageAnnotation(proceedingJoinPoint); if (errorMessage == null) { TraceeContextLogger .create() .enforceOrder() .apply() .logWithPrefixedMessage(MessagePrefixProvider.provideLogMessagePrefix(MessageLogLevel.ERROR, Watchdog.class), CoreImplicitContextProviders.COMMON, CoreImplicitContextProviders.TRACEE, WatchdogDataWrapper.wrap(annotatedId, proceedingJoinPoint), e); } else { TraceeContextLogger .create() .enforceOrder() .apply() .logWithPrefixedMessage(MessagePrefixProvider.provideLogMessagePrefix(MessageLogLevel.ERROR, Watchdog.class), TraceeMessage.wrap(errorMessage.value()), CoreImplicitContextProviders.COMMON, CoreImplicitContextProviders.TRACEE, WatchdogDataWrapper.wrap(annotatedId, proceedingJoinPoint), e); } }