[ https://issues.apache.org/jira/browse/LOG4J2-952?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14702957#comment-14702957 ]
Bart S. commented on LOG4J2-952: -------------------------------- Is there a reason the "getFilterAssembler()" (for instance) is being called on appenderAssembler instead of assembler? As I understand it filters can be attached to many things, that would make it odd to retrieve it from the sub-assembler type object?. In a general sense, is the compositing essential here?. Does it add anything that the appenderAssembler returns the LayoutAssembler, instead of the top level assembler?.... But at least now I know how you are doing it. I suspected you would be using a Node structure like the current system, but I have no idea or knowledge about its internals, nor did I know that Configuration.start() does some building. Indeed the only API I imagined would be one that had an implementation that would create a "ready made" Configuration together with all the objects. Regards... > FAQ: How do I configure log4j2 programmatically in code without a > configuration file? > ------------------------------------------------------------------------------------- > > Key: LOG4J2-952 > URL: https://issues.apache.org/jira/browse/LOG4J2-952 > Project: Log4j 2 > Issue Type: Bug > Components: API, Configurators, Documentation > Affects Versions: 2.1 > Reporter: Joe Merten > > I found [this > link|http://logging.apache.org/log4j/2.x/faq.html#config_from_code] which > said: > {quote} > You could use the static method #initialize(String contextName, ClassLoader > loader, String configLocation) in > org.apache.logging.log4j.core.config.Configurator. (You can pass null for the > class loader.) Be aware that this class is not part of the public API so your > code may break with any minor release. > {quote} > This documentation is unclear because it points to a member function which > needs a filename {{configLocation}} where as the topic is »without a > configuration file«. > It shoud rather point to the member function > {{org.apache.logging.log4j.core.config.Configurator.initialize(ClassLoader > loader, ConfigurationSource source)}}. > Example: > {code:java} > import org.apache.logging.log4j.core.config.ConfigurationSource; > import org.apache.logging.log4j.core.config.Configurator; > final String hardCodedXmlConfig = > "<?xml version='1.0' encoding='UTF-8'?>\n" + > "<Configuration status='INFO'>\n" + > " <Appenders>\n" + > " <Console name='Console' target='SYSTEM_OUT'>\n" + > " <PatternLayout pattern='%d{HH:mm:ss.SSS} [%t] %-5level > %logger{36} - %msg%n'/>\n" + > " </Console>\n" + > " </Appenders>\n" + > " <Loggers>\n" + > " <Root level='debug'>\n" + > " <AppenderRef ref='Console'/>\n" + > " </Root>\n" + > " </Loggers>\n" + > "</Configuration>\n"; > try { > Configurator.initialize(null, new ConfigurationSource(new > ByteArrayInputStream(hardCodedXmlConfig.getBytes()))); > } catch (IOException e) { > e.printStackTrace(); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org