use of org.apache.logging.log4j.core.Layout in project Anserini by castorini.
the class TrainingDataGenerator method createNewLoggerConfig.
/**
* Dynamically creates a logger configuration with an appender that writes to a file.
* This logger is used to write training data.
*
* @param loggerName the name of the logger to create
* @param outputFilePath the file path to write logs to
* @param patternLayout layout for the logger, if null just display
* the message using DEFAULT_CONVERSION_PATTERN
*/
private static void createNewLoggerConfig(String loggerName, String outputFilePath, String patternLayout) {
// Ignore null output files
if (outputFilePath == null)
return;
// Create a logger to write the training data
final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
final Configuration config = ctx.getConfiguration();
Layout layout = PatternLayout.createLayout(patternLayout == null ? PatternLayout.DEFAULT_CONVERSION_PATTERN : patternLayout, config, null, StandardCharsets.UTF_8, false, false, null, null);
Appender appender = FileAppender.createAppender(outputFilePath, "false", "false", loggerName, "true", "false", "false", "2000", layout, null, "false", null, config);
appender.start();
config.addAppender(appender);
// Adding reference to the appender
AppenderRef ref = AppenderRef.createAppenderRef(loggerName, null, null);
AppenderRef[] refs = new AppenderRef[] { ref };
LoggerConfig loggerConfig = LoggerConfig.createLogger("false", Level.TRACE, loggerName, "true", refs, null, config, null);
// Adding appender to logger, and adding logger to context
loggerConfig.addAppender(appender, null, null);
config.addLogger(loggerName, loggerConfig);
ctx.updateLoggers();
}
use of org.apache.logging.log4j.core.Layout in project hive by apache.
the class LogDivertAppender method getDefaultLayout.
public Layout<? extends Serializable> getDefaultLayout() {
// There should be a ConsoleAppender. Copy its Layout.
Logger root = LogManager.getRootLogger();
Layout layout = null;
for (Appender ap : ((org.apache.logging.log4j.core.Logger) root).getAppenders().values()) {
if (ap.getClass().equals(ConsoleAppender.class)) {
layout = ap.getLayout();
break;
}
}
return layout;
}
use of org.apache.logging.log4j.core.Layout in project xian by happyyangyuan.
the class GelfLogAppender method createAppender.
@PluginFactory
public static GelfLogAppender createAppender(@PluginConfiguration final Configuration config, @PluginAttribute("name") String name, @PluginElement("Filter") Filter filter, @PluginElement("Field") final GelfLogField[] knownFields, @PluginElement("DynamicMdcFields") final GelfDynamicMdcLogFields[] dynamicMdcFieldArray, @PluginAttribute("graylogHost") String graylogHost, @PluginAttribute("host") String host, @PluginAttribute("graylogPort") String graylogPort, @PluginAttribute("port") String port, @PluginAttribute("version") String version, @PluginAttribute("extractStackTrace") String extractStackTrace, @PluginAttribute("originHost") String originHost, @PluginAttribute("includeFullMdc") String includeFullMdc, @PluginAttribute("facility") String facility, @PluginAttribute("filterStackTrace") String filterStackTrace, @PluginAttribute("mdcProfiling") String mdcProfiling, @PluginAttribute("maximumMessageSize") String maximumMessageSize, @PluginAttribute("additionalFieldTypes") String additionalFieldTypes, @PluginAttribute(value = "ignoreExceptions", defaultBoolean = true) boolean ignoreExceptions, @PluginAttribute("layout") String layoutString, @PluginAttribute("messageFormat") MessageFormatEnum jsonOrPlainOrDefault) {
RuntimeContainer.initialize(ERROR_REPORTER);
MdcGelfMessageAssembler mdcGelfMessageAssembler;
if (Objects.equals(MessageFormatEnum.json, jsonOrPlainOrDefault))
mdcGelfMessageAssembler = new MdcGelfJsonMessageAssembler();
else
mdcGelfMessageAssembler = new MdcGelfMessageAssembler();
if (name == null) {
LOGGER.error("No name provided for " + GelfLogAppender.class.getSimpleName());
return null;
}
if (Strings.isEmpty(host) && Strings.isEmpty(graylogHost)) {
LOGGER.error("No host provided for " + GelfLogAppender.class.getSimpleName(), new Throwable());
return null;
}
if (Strings.isNotEmpty(host)) {
mdcGelfMessageAssembler.setHost(host);
}
if (Strings.isNotEmpty(graylogHost)) {
mdcGelfMessageAssembler.setHost(graylogHost);
}
if (Strings.isNotEmpty(port)) {
mdcGelfMessageAssembler.setPort(Integer.parseInt(port));
}
if (Strings.isNotEmpty(graylogPort)) {
mdcGelfMessageAssembler.setPort(Integer.parseInt(graylogPort));
}
if (Strings.isNotEmpty(version)) {
mdcGelfMessageAssembler.setVersion(version);
}
if (Strings.isNotEmpty(originHost)) {
PatternLayout patternLayout = newBuilder().withPattern(originHost).withConfiguration(config).withNoConsoleNoAnsi(false).withAlwaysWriteExceptions(false).build();
mdcGelfMessageAssembler.setOriginHost(patternLayout.toSerializable(new Log4jLogEvent()));
}
if (facility != null) {
mdcGelfMessageAssembler.setFacility(facility);
}
if (extractStackTrace != null) {
mdcGelfMessageAssembler.setExtractStackTrace(extractStackTrace);
}
if (filterStackTrace != null) {
mdcGelfMessageAssembler.setFilterStackTrace("true".equals(filterStackTrace));
}
if (mdcProfiling != null) {
mdcGelfMessageAssembler.setMdcProfiling("true".equals(mdcProfiling));
}
if (includeFullMdc != null) {
mdcGelfMessageAssembler.setIncludeFullMdc("true".equals(includeFullMdc));
}
if (maximumMessageSize != null) {
mdcGelfMessageAssembler.setMaximumMessageSize(Integer.parseInt(maximumMessageSize));
}
if (additionalFieldTypes != null) {
ConfigurationSupport.setAdditionalFieldTypes(additionalFieldTypes, mdcGelfMessageAssembler);
}
Layout layout = null;
if (layoutString != null) {
layout = PatternLayout.newBuilder().withPattern(layoutString).build();
}
configureFields(mdcGelfMessageAssembler, knownFields, dynamicMdcFieldArray);
return new GelfLogAppender(name, filter, layout, mdcGelfMessageAssembler, ignoreExceptions);
}
use of org.apache.logging.log4j.core.Layout in project logging-log4j2 by apache.
the class LegacyPluginTest method testLegacy.
@Test
public void testLegacy(final Configuration configuration) throws Exception {
assertThat(configuration, instanceOf(XmlConfiguration.class));
for (Map.Entry<String, Appender> entry : configuration.getAppenders().entrySet()) {
if (entry.getKey().equalsIgnoreCase("console")) {
Layout layout = entry.getValue().getLayout();
assertNotNull("No layout for Console Appender");
String name = layout.getClass().getSimpleName();
assertEquals("LogstashLayout", name, "Incorrect Layout class. Expected LogstashLayout, Actual " + name);
} else if (entry.getKey().equalsIgnoreCase("customConsole")) {
Layout layout = entry.getValue().getLayout();
assertNotNull("No layout for CustomConsole Appender");
String name = layout.getClass().getSimpleName();
assertEquals("CustomConsoleLayout", name, "Incorrect Layout class. Expected CustomConsoleLayout, Actual " + name);
}
}
}
Aggregations