<div dir="ltr">In my case, a positional positioning formatter is just the beginning.  The most important thing is a formatter that supports reflection, since there is no other way to allow specification of nested object hierarchies without requiring the programmer to always dereference those hierarchies whether the data will be used or not.  If you have to call user.getName().getFirstname() to pass to the logging system (not to mention the two '+'s you're likely to need to get it into the message) you have degraded your production performance to get the data you need to debug a potential problem in the field.  If you could have specified it as ("User: {0.name.firstname} from {0.address.city}, {0.address.state}",user) it would have incurred no up front cost unless the statement was actually going to be used.  The positional nature of the parameters in this case is as much about parameter reuse as it is rearranging.<div style>

  (*Chris*)</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Feb 8, 2013 at 8:12 AM, David Harkness <span dir="ltr"><<a href="mailto:david.h@highgearmedia.com" target="_blank">david.h@highgearmedia.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="im">On Fri, Feb 8, 2013 at 12:24 AM, Thorbjørn Ravn Andersen <span dir="ltr"><<a href="mailto:thunderaxiom@hotmail.com" target="_blank">thunderaxiom@hotmail.com</a>></span> wrote:<br>

</div><div class="gmail_extra">
<div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div lang="DA" link="blue" vlink="purple">


<div><p><span lang="EN-US" style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">I think the primary focus for this facility has been raw speed.</span></p></div></div></blockquote><div><br></div>
</div><div>As well it should, IMHO. The goal for me is to provide a meaningful diagnostic of what's going on without impacting the running system too much, both when logging is turned on and off.</div><div class="im">

<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div lang="DA" link="blue" vlink="purple"><p><span lang="EN-US" style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u></span></p>


<p><span style="color:rgb(31,73,125);font-family:Calibri,sans-serif;font-size:11pt">In my understanding the primary usage of positional is to be able to translate sentences more fluently into another human language.</span></p>


</div></blockquote><div><br></div></div><div>Yes, it allows the parameters in externalized messages to be reordered while translating to other languages. I think if you're going to this much trouble to produce messages for the user, they are important enough to be left on all the time. Thus, you can pay the cost to format the message up-front using a tool more suited to that task and hand them off to the logging system.</div>


<div><br></div><div>I don't see a strong need for positional parameters.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>David</div><div><br></div></font></span></div></div></div>
<br>_______________________________________________<br>
Logback-user mailing list<br>
<a href="mailto:Logback-user@qos.ch">Logback-user@qos.ch</a><br>
<a href="http://mailman.qos.ch/mailman/listinfo/logback-user" target="_blank">http://mailman.qos.ch/mailman/listinfo/logback-user</a><br></blockquote></div><br></div>