@Override public Serde<LogEvent> getSerde(String name, Config config) { boolean locationInfoEnabled = new Log4jSystemConfig(config).getLocationEnabled(); return new LoggingEventJsonSerde(locationInfoEnabled); } }
/** * Defines whether or not to include file location information for Log4J * appender messages. File location information includes the method, line * number, class, etc. * * @return If true, will include file location (method, line number, etc) * information in Log4J appender messages. */ public boolean getLocationEnabled() { return "true".equals(get(Log4jSystemConfig.LOCATION_ENABLED, "false")); }
protected void setupSystem() { config = getConfig(); SystemFactory systemFactory = null; Log4jSystemConfig log4jSystemConfig = new Log4jSystemConfig(config); streamName = getStreamName(log4jSystemConfig.getJobName(), log4jSystemConfig.getJobId()); metrics = new StreamAppenderMetrics("stream-appender", metricsRegistry); String systemName = log4jSystemConfig.getSystemName(); String systemFactoryName = log4jSystemConfig.getSystemFactory(systemName); if (systemFactoryName != null) { systemFactory = Util.getObj(systemFactoryName, SystemFactory.class);
/** * set the serde for this appender. It looks for the stream serde first, then system serde. * If still can not get the serde, throws exceptions. * * @param log4jSystemConfig log4jSystemConfig for this appender * @param systemName name of the system * @param streamName name of the stream */ private void setSerde(Log4jSystemConfig log4jSystemConfig, String systemName, String streamName) { String serdeClass = LoggingEventJsonSerdeFactory.class.getCanonicalName(); String serdeName = log4jSystemConfig.getStreamSerdeName(systemName, streamName); if (serdeName != null) { serdeClass = log4jSystemConfig.getSerdeClass(serdeName); } if (serdeClass != null) { SerdeFactory<LoggingEvent> serdeFactory = Util.getObj(serdeClass, SerdeFactory.class); serde = serdeFactory.getSerde(systemName, config); } else { String serdeKey = String.format(SerializerConfig.SERDE_FACTORY_CLASS(), serdeName); throw new SamzaException("Can not find serializers class for key '" + serdeName + "'. Please specify " + serdeKey + " property"); } }
@Test public void testGetLog4jSystemName() { Map<String, String> map = new HashMap<String, String>(); map.put("task.log4j.system", "log4j-system"); map.put("systems.system1.samza.factory", "1"); Log4jSystemConfig log4jSystemConfig = new Log4jSystemConfig(new MapConfig(map)); assertEquals("log4j-system", log4jSystemConfig.getSystemName()); // throw ConfigException map.remove("task.log4j.system"); log4jSystemConfig = new Log4jSystemConfig(new MapConfig(map)); exception.expect(ConfigException.class); log4jSystemConfig.getSystemName(); }
@Test public void testGetSerdeClass() { Map<String, String> map = new HashMap<String, String>(); Log4jSystemConfig log4jSystemConfig = new Log4jSystemConfig(new MapConfig(map)); // get null assertNull(log4jSystemConfig.getSerdeClass("otherName")); // get serde map.put("serializers.registry.log4j.class", "someClass"); log4jSystemConfig = new Log4jSystemConfig(new MapConfig(map)); assertEquals("someClass", log4jSystemConfig.getSerdeClass("log4j")); }
@Test public void testGetSerdeName() { Map<String, String> map = new HashMap<String, String>(); map.put("systems.mockSystem.samza.msg.serde", "systemSerde"); Log4jSystemConfig log4jSystemConfig = new Log4jSystemConfig(new MapConfig(map)); // no stream serde assertNull(log4jSystemConfig.getStreamSerdeName("mockSystem", "mockStream")); // stream serde map.put("systems.mockSystem.streams.mockStream.samza.msg.serde", "streamSerde"); log4jSystemConfig = new Log4jSystemConfig(new MapConfig(map)); assertEquals("streamSerde", log4jSystemConfig.getStreamSerdeName("mockSystem", "mockStream")); } }
@Test public void testGetSystemNames() { Map<String, String> map = new HashMap<String, String>(); map.put("systems.system1.samza.factory", "1"); map.put("systems.system2.samza.factory", "2"); Log4jSystemConfig log4jSystemConfig = new Log4jSystemConfig(new MapConfig(map)); assertEquals(2, log4jSystemConfig.getSystemNames().size()); }
protected void setupSystem() { config = getConfig(); SystemFactory systemFactory = null; Log4jSystemConfig log4jSystemConfig = new Log4jSystemConfig(config); streamName = getStreamName(log4jSystemConfig.getJobName(), log4jSystemConfig.getJobId()); metrics = new StreamAppenderMetrics("stream-appender", metricsRegistry); String systemName = log4jSystemConfig.getSystemName(); String systemFactoryName = log4jSystemConfig.getSystemFactory(systemName); if (systemFactoryName != null) { systemFactory = Util.getObj(systemFactoryName, SystemFactory.class);
/** * set the serde for this appender. It looks for the stream serde first, then system serde. * If still can not get the serde, throws exceptions. * * @param log4jSystemConfig log4jSystemConfig for this appender * @param systemName name of the system * @param streamName name of the stream */ private void setSerde(Log4jSystemConfig log4jSystemConfig, String systemName, String streamName) { String serdeClass = LoggingEventJsonSerdeFactory.class.getCanonicalName(); String serdeName = log4jSystemConfig.getStreamSerdeName(systemName, streamName); if (serdeName != null) { serdeClass = log4jSystemConfig.getSerdeClass(serdeName); } if (serdeClass != null) { SerdeFactory<LogEvent> serdeFactory = Util.getObj(serdeClass, SerdeFactory.class); serde = serdeFactory.getSerde(systemName, config); } else { String serdeKey = String.format(SerializerConfig.SERDE_FACTORY_CLASS(), serdeName); throw new SamzaException("Can not find serializers class for key '" + serdeName + "'. Please specify " + serdeKey + " property"); } }
@Override public Serde<LoggingEvent> getSerde(String name, Config config) { boolean locationInfoEnabled = new Log4jSystemConfig(config).getLocationEnabled(); return new LoggingEventJsonSerde(locationInfoEnabled); } }
/** * Defines whether or not to include file location information for Log4J * appender messages. File location information includes the method, line * number, class, etc. * * @return If true, will include file location (method, line number, etc) * information in Log4J appender messages. */ public boolean getLocationEnabled() { return "true".equals(get(Log4jSystemConfig.LOCATION_ENABLED, "false")); }
/** * Get the class name according to the serde name. * * @param name serde name * @return serde factory name, or null if there is no factory defined for the * supplied serde name. */ public String getSerdeClass(String name) { return get(String.format(SerializerConfig.SERDE_FACTORY_CLASS(), name), null); }
/** * Get the class name according to the serde name. * * @param name serde name * @return serde factory name, or null if there is no factory defined for the * supplied serde name. */ public String getSerdeClass(String name) { return get(String.format(SerializerConfig.SERDE_FACTORY_CLASS(), name), null); }
/** * Get the log4j system name from the config. * If it's not defined, throw a ConfigException * * @return log4j system name */ public String getSystemName() { String log4jSystem = get(TASK_LOG4J_SYSTEM, null); if (log4jSystem == null) { throw new ConfigException("Missing " + TASK_LOG4J_SYSTEM + " configuration. Can't figure out the system name to use."); } return log4jSystem; }
public String getJobId() { return get(JobConfig.JOB_ID(), null); }
/** * Get the log4j system name from the config. * If it's not defined, throw a ConfigException * * @return log4j system name */ public String getSystemName() { String log4jSystem = get(TASK_LOG4J_SYSTEM, null); if (log4jSystem == null) { throw new ConfigException("Missing " + TASK_LOG4J_SYSTEM + " configuration. Can't figure out the system name to use."); } return log4jSystem; }
public String getJobName() { return get(JobConfig.JOB_NAME(), null); }
public String getJobName() { return get(JobConfig.JOB_NAME(), null); }
public String getJobId() { return get(JobConfig.JOB_ID(), null); }