/** * Initializes all available connectors. */ private void initConnectors() { connectorsWrapper = new ConnectorFactory(); }
ConnectorFactory() { initConnectors(); }
/** * Initializes all available connectors. */ private void initConnectors() { // first get all connector configuration Names Set<String> connectorConfigurationNames = this.getConnectorConfigurationNames(); for (String connectorConfigurationName : connectorConfigurationNames) { Connector connector = this.createConnector(connectorConfigurationName); if (connector != null) { this.connectorMap.put(connectorConfigurationName, connector); } } // Add mandatory logger if (!isConnectorConfigured(LogConnector.class)) { Connector logConnector = new LogConnector(); this.connectorMap.put("LOGGER", logConnector); } }
@Override public void logJsonWithPrefixedMessage(String prefixedMessage, Object... instancesToLog) { this.connectorsWrapper.sendErrorReportToConnectors(prefixedMessage, createJson(instancesToLog)); }
/** * Tries to create a Connector for a given connector configuration name. * * @param connectorConfigurationName the name of the connector configuration * @return the connector if it could be created and initialized without error, otherwise null */ final Connector createConnector(final String connectorConfigurationName) { Map<String, String> propertyMap = this.getPropertiesForConnectorConfigurationName(connectorConfigurationName); String type = propertyMap.get(TraceeContextLoggerConstants.SYSTEM_PROPERTY_CONTEXT_LOGGER_CONNECTOR_TYPE); // get canonical class name for well known connectors if (WELL_KNOW_CONNECTOR_MAPPINGS.containsKey(type)) { type = WELL_KNOW_CONNECTOR_MAPPINGS.get(type); } try { // try to create connector instance Connector connector = (Connector) Class.forName(type).newInstance(); // now try to call init method connector.init(propertyMap); return connector; } catch (Exception e) { LOGGER.error("An error occurred while creating connector with name '" + connectorConfigurationName + "' of type '" + type + "'", e); } return null; }