[slf4j-dev] Better printing method signatures?

Ceki Gülcü listid at qos.ch
Thu Jun 16 22:33:27 CEST 2005


To clarify, I used the word "deducted" to mean "deduced" or "inferred".

At 10:30 PM 6/16/2005, you wrote:

>Hello,
>
>
>For me, the real choice is between
>
>  debug(String)
>
>and
>
>  debug(Object)
>
>The signature of the other methods can be more or less "deducted" from the 
>above choice.
>
>To answer your question, let me first label the methods you mention:
>
>  nhA)  debug( String, Object, Throwable );
>  nhB)  debug( String, Throwable, Object );
>  nhC)  debug( String, Object[] )
>  nhD)  debug( String, Object, Object[] );
>  nhE)  debug( String, Object[], Object );
>  nhF)  debug( String, Throwable, Object[] );
>  nhG)  debug( String, Object[], Throwable );
>
>
>I think nhD and nhE are ambiguous. For example, the following statement 
>will not compile.
>
>    debug("hello", new Object[] {}, new Object[] {});
>
>Moreover, I fail to see a need for nhD or nhE, if you have nhC.
>
>I also do not understand when or why you would want to use nhA, mhB, nhF 
>or nhG. As I see it,
>
>   cgA) debug(String, Throwable)
>   cgB) debug(Object, Throwable);
>   cgC) debug(Object);
>
>are the only variants that will admit a parameter of type Throwable. (Note 
>that cgA and cgB conflict, so only one can be present in the SLG4J Logger 
>interface).
>
>I'll try to follow up with a more complete answer tomorrow.
>
>
>At 05:27 AM 6/16/2005, Niclas Hedhman wrote:
>>On Thursday 16 June 2005 04:30, Ceki Gülcü wrote:
>> > I am thinking of reducing the set to 3 as follows:
>> >
>> >   void debug(Object msg);
>> >   void debug(Object msg, Object param1);
>> >   void debug(Object msg, Object param1, Object param2);
>>
>> > Any better ideas? Comments?
>>
>>The only downside that I can see is the "Auto show doc" that IDEs are doing.
>>The javadoc for each method will become either very generic (i.e. doesn't be
>>descriptive enough) or very detailed and large with a lot of complex formulas
>>of how things are resolved.
>>
>>I think I would still recommend that first argument is "String message", to
>>reduce the documentation complexity. Also outputting an Throwable without any
>>further description is probably only suitable for debug/trace, and putting a
>>'null' or "" for those cases are a reasonable trade-off, I think.
>>
>>Question is would these also be special cases;
>>
>>    debug( String, Object, Throwable );
>>    debug( String, Throwable, Object );
>>    debug( String, Object[] )
>>    debug( String, Object, Object[] );
>>    debug( String, Object[], Object );
>>    debug( String, Throwable, Object[] );
>>    debug( String, Object[], Throwable );
>>
>>Passing more than two arguments have its use-cases.
>>With free argument passing like above, it will become very "messy" to decode.
>>OTOH, throwing a runtime exception also seems like the wrong idea.
>>
>>WDYT?
>>
>>
>>Cheers
>>Niclas
>>_______________________________________________
>>dev mailing list
>>dev at slf4j.org
>>http://slf4j.org/mailman/listinfo/dev
>
>--
>Ceki Gülcü
>
>   The complete log4j manual: http://www.qos.ch/log4j/
>
>
>_______________________________________________
>dev mailing list
>dev at slf4j.org
>http://slf4j.org/mailman/listinfo/dev

-- 
Ceki Gülcü

   The complete log4j manual: http://www.qos.ch/log4j/





More information about the slf4j-dev mailing list