<html><body bgcolor="#FFFFFF"><div>That's an interesting approach. But it quite specific. In my world we have dozens of programs each with their own logback.xml file. Host, user or environment does't matter.&nbsp;</div><div><br></div><div>What we do is put the logback.xml in a java package. Then at application startup we find the current main package, check logback.xml exist at that location and if so sets&nbsp;<span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); font-size: medium; font-family: monospace; ">logback.configurationFile </span><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">system property.&nbsp;</span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); "><br></span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469);">Of course that suits us, but not others. Perhaps there is a more general approach?</span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469);"><br></span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469);">How about this:</span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469);">- at startup logback checks the&nbsp;</span><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); font-size: medium; font-family: monospace; ">logback.configurationFile</span><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">&nbsp;sys prop.&nbsp;</span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">- if it contains any ${variables} replace them like would be done inside logback.xml itself.&nbsp;</span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">- continue startup</span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); "><br></span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">With this approach you could emulate the lift approach just by setting one system property.&nbsp;</span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); "><br></span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">Optional improvements:</span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">- include env vars as well as sys props</span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">- allow defaults to be specified like this ${variable:default}</span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469);">&nbsp;</span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469);">How does that sound?</span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469);"><br></span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469);">David</span></div><div><br>On 11 Apr 2011, at 15:00, Urs Peter &lt;<a href="mailto:peter.urs@gmail.com">peter.urs@gmail.com</a>&gt; wrote:<br><br></div><div></div><blockquote type="cite"><div><span>Hi all,</span><br><span></span><br><span>Recently I was reinventing once more a strategy to deal with different</span><br><span>logging configurations based on environment. Logback offers a rather</span><br><span>rigid approach by means of the -test naming scheme, which provides me</span><br><span>with two options for logging configuration: one for real and one for</span><br><span>test. For my usage, I'm looking for a richer naming scheme.</span><br><span></span><br><span>Since I recently did some stuff with lift where they - in my eyes -</span><br><span>found an elegant way to tackle this problem, I thought it might be</span><br><span>handy to port this to logback. What lift does is the following: They</span><br><span>use a naming scheme, which combines a run mode, and/or current user</span><br><span>and/or host. Their convention looks as follows:</span><br><span></span><br><blockquote type="cite"><span>modeName.userName.hostName.props</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>examples:</span><br></blockquote><blockquote type="cite"><span>jack.aserver.props</span><br></blockquote><blockquote type="cite"><span>test.jack.aserver.props</span><br></blockquote><blockquote type="cite"><span>production.aserver.props</span><br></blockquote><blockquote type="cite"><span>staging.jack.props</span><br></blockquote><blockquote type="cite"><span>test.default.props</span><br></blockquote><blockquote type="cite"><span>default.props</span><br></blockquote><span></span><br><span></span><br><span>The run mode (test/production/staging etc.) is nothing else than an</span><br><span>JVM argument (-Drun.mode=test). The current user is related to the</span><br><span>user.name default JVM argument.</span><br><span></span><br><span>What do you guys think, would this be an interesting feature?</span><br><span></span><br><span>Cheers Urs</span><br><span>_______________________________________________</span><br><span>Logback-user mailing list</span><br><span><a href="mailto:Logback-user@qos.ch">Logback-user@qos.ch</a></span><br><span><a href="http://qos.ch/mailman/listinfo/logback-user">http://qos.ch/mailman/listinfo/logback-user</a></span><br></div></blockquote></body></html>