Daniel Resch created LOG4J2-2888:
------------------------------------

             Summary: Using AppenderComponentBuilder to Build an 
OutputStreamAppender
                 Key: LOG4J2-2888
                 URL: https://issues.apache.org/jira/browse/LOG4J2-2888
             Project: Log4j 2
          Issue Type: Question
          Components: Configuration, Configurators
            Reporter: Daniel Resch


Hi all,

I would like to programmatically create a configuration for an 
OutputStreamAppender using the AppenderComponentBuilder approach. I need to set 
the target output stream, but the .addAttribute("target", myOutputStream) 
method doesn't work. I have the following static method below:

public static void configureTextStackLogger() {

ConfigurationBuilder<BuiltConfiguration> builder = 
ConfigurationBuilderFactory.newConfigurationBuilder(); 
builder.setStatusLevel(Level.ERROR); builder.setConfigurationName("MyApp"); 
builder.add(builder.newFilter("ThresholdFilter", Filter.Result.ACCEPT, 
Filter.Result.NEUTRAL) .addAttribute("level", Level.DEBUG));

AppenderComponentBuilder appenderBuilder = builder.newAppender("MyTextStack", 
"OutputStream"); appenderBuilder.add(builder.newLayout("PatternLayout") 
.addAttribute("pattern", "%d [%t] %-5level: %msg%n%throwable")); 
OutputStreamAppender osa = (OutputStreamAppender 
(appenderBuilder.getBuilder())) 
appenderBuilder.add(builder.newFilter("MarkerFilter", Filter.Result.DENY, 
Filter.Result.NEUTRAL) .addAttribute("marker", "FLOW")); 
builder.add(appenderBuilder);

builder.add(builder.newLogger("com.my.app", Level.INFO) 
.add(builder.newAppenderRef("MyTextStack")).addAttribute("additivity", false)); 
builder.add(builder.newRootLogger(Level.ERROR).add(builder.newAppenderRef("MyTextStack")));

Configurator.initialize(builder.build());

}

What do I need to do to call the setTarget in OutputStreamAppender.Builder 
method so I can add my OutputStream?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to