This just feels overly complicated. I have a feeling you are going to get pushback from all the folks who have learned over the years that XML is a good configuration language but sucks as a programming language. Wouldn't it make more sense to just use a real scripting language if you want this?
I find it odd that you find this more important than adding support for Messages. Ralph On Mar 29, 2010, at 2:07 PM, Ceki Gülcü wrote: > > Just committed new code so that the following configuration file is > interpreted correctly. > > <configuration> > > <appender name="FILE" class="ch.qos.logback.core.FileAppender"> > <file>${randomOutputDir}/conditional.log</file> > <encoder> > <pattern>%d %-5level %logger{35} - %msg %n</pattern> > </encoder> > </appender> > > <root level="ERROR"> > <appender-ref ref="FILE" /> > </root> > > > <if condition='property("HOSTNAME").contains("${aHost}")'> > <then> > <appender name="CON" class="ch.qos.logback.core.ConsoleAppender"> > <encoder> > <pattern>%d %-5level %logger{35} - %msg %n</pattern> > </encoder> > </appender> > <root> > <appender-ref ref="CON" /> > </root> > </then> > </if> > > </configuration> > > where "aHost" is set to be the name of the current host. Note that > HOSTNAME always contains the name of the current host so that the > condition property("HOSTNAME").contains("${aHost}") evaluates to true. > > In my previous message, the config file get set the incremental > attribute of the root element to true. No such attribute > exists. Logger declaration in logback configuration files are > incremental by design. I mistakenly thought that it was like in log4j > where each logger declaration removes all attached appenders. > > I hope that you'll find the XML-conditional syntax not too > horrible. Your comments are welcome, > > -- > Ceki > > > On 29/03/2010 9:50 PM, Ceki Gülcü wrote: >> >> Hello all, >> >> I began implementing if-then-else support in Joran. If you wish to >> enable part of a config file in one environment and disable it >> another, now you can. >> >> Here is an example, >> >> <configuration> >> >> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> >> <encoder> >> <pattern>%d %-5level %logger{35} - %msg %n</pattern> >> </encoder> >> </appender> >> >> <root level="DEBUG"> >> <appender-ref ref="FILE" /> >> </root> >> >> >> <if condition='property("HOSTNAME").contains("mydevHost")'> >> <then> >> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> >> <encoder> >> <pattern>%d %-5level %logger{35} - %msg %n</pattern> >> </encoder> >> </appender> >> <root incremental="true"> >> <appender-ref ref="STDOUT" /> >> </root> >> </then> >> </if> >> >> </configuration> >> >> Thus, the ConsoleAppender will be attached to the root logger only on >> "mydevHost" but not on other hosts. >> >> This feature is still experimental. Your feedback is welcome. >> >> -- >> Ceki >> >> _______________________________________________ >> logback-dev mailing list >> logback-dev@qos.ch >> http://qos.ch/mailman/listinfo/logback-dev > > _______________________________________________ > logback-dev mailing list > logback-dev@qos.ch > http://qos.ch/mailman/listinfo/logback-dev _______________________________________________ logback-dev mailing list logback-dev@qos.ch http://qos.ch/mailman/listinfo/logback-dev