[ https://issues.apache.org/jira/browse/LOG4J2-3421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17500093#comment-17500093 ]
Volkan Yazici commented on LOG4J2-3421: --------------------------------------- [~sovikstepan], given you were pretty sharp at noticing errors in the code, you can very well submit a PR targeting [customconfig.xml.|https://github.com/apache/logging-log4j2/blob/release-2.x/src/site/xdoc/manual/customconfig.xml]. ;) (See the pencil-shaped _"Edit this file"_ button.) > Programmatic Configuration > -------------------------- > > Key: LOG4J2-3421 > URL: https://issues.apache.org/jira/browse/LOG4J2-3421 > Project: Log4j 2 > Issue Type: Bug > Components: Configuration, Documentation > Affects Versions: 2.17.1 > Reporter: Štěpán Sovík > Priority: Major > > The documentation provided here: > [https://logging.apache.org/log4j/2.x/manual/customconfig.html] contains > plenty of 'code snippets' that are using deprecated API, non-compilable > issues ... and even when one fixes all, it still doesn't work. > Documentation issues need to be fixed and documentation updated so it's > obvious how it should actually work. > Just some examples: > > {code:java} > public Configuration getConfiguration(InputSource source) { return > new MyXMLConfiguration(source, configFile); } {code} > Where the configFile comes from?? > > > {code:java} > @Override protected void doConfigure() { super.doConfigure(); > final LoggerContext ctx = (LoggerContext) LogManager.getContext(false); > final Configuration config = context.getConfiguration(); final > Layout layout = PatternLayout.createDefaultLayout(config); final > Appender appender = FileAppender.createAppender("target/test.log", "false", > "false", "File", "true", "false", "false", "4000", layout, null, > "false", null, config); appender.start(); > addAppender(appender); LoggerConfig loggerConfig = > LoggerConfig.createLogger("false", "info", "org.apache.logging.log4j", > "true", refs, null, config, null ); > loggerConfig.addAppender(appender, null, null); > addLogger("org.apache.logging.log4j", loggerConfig); } {code} > Where the refs come from?? > > > {code:java} > final LoggerContext ctx = (LoggerContext) LogManager.getContext(false); > final Configuration config = context.getConfiguration(); {code} > Really? No one was doing some kind of review on this?? Code snippets were > done in plain text editors? > > {code:java} > LoggerConfig loggerConfig = LoggerConfig.createLogger("false", > "info", "org.apache.logging.log4j", > "true", refs, null, config, null ); {code} > Come on! This cannot be even compiled ... because "{_}The method > createLogger(String, Level, String, String, AppenderRef[], Property[], > Configuration, Filter) in the type LoggerConfig is not applicable for the > arguments (String, String, String, String, AppenderRef[], null, > Configuration, null){_}" > I've never seen such a badly documented feature before. -- This message was sent by Atlassian Jira (v8.20.1#820001)