See http://docs.oracle.com/javase/6/docs/api/java/util/logging/Logger.html#throwing(java.lang.String, java.lang.String, java.lang.Throwable) as this is where these names originated from. Logback has variations on these at http://www.slf4j.org/apidocs/org/slf4j/ext/XLogger.html#catching(java.lang.Throwable). So to make implementing compatibility with these easy it is better to have them. Furthermore, many of my colleagues like using these methods as they seem to be intuitively obvious as to why they are there, so I am inclined to keep them.
It has already been reported that the documentation says the default method is logging at Debug while the documentation says it is Error and I will fix that. Ralph On Sep 24, 2012, at 2:36 PM, Gary Gregory wrote: > Hi All: > > I've started porting a project from 1.2.16 to 2.0. > > I find the Logger.catching() API name to be rather poor. I can't recall > seeing APIs that say do-"ing" something. APIs usually just "do". IMO, the > fact that the API was can be called from a catch clause should not create the > need to call the API catching. > > So, "log" would be better IMO, because the /Logger/ logs the exception. The > Javadoc is lacking here, what level is used? > > One way I like to think about API names and Javadoc is to see how they both > read. I assume we are all using the active voice pattern for Javadoc of > course ;) I like it when I see, for example, an API called runFast() and the > Javadoc says "Runs fast.". > > Which is why the catching() name is that much the lamer ;) IMO. > > Tangent: > > This is further (slightly) confusing because there are FATAL, ERROR, DEBUG > (and so on) Levels which match up with fatal(), error() and debug() methods. > There is no CATCHING level of course ;) > > Which brings up the bigger issue of API names and what the proper name should > be. Usually, APIs /do/ something, using a verb, like log() or warn(). An > better active verb API would be inform() for INFO. Luckily we do have already > warn() for WARN, debug() for DEBUG, trace() for TRACE. Where there is no > great choice is for FATAL, where we have fatal() today. So we are just lucky > that all levels except INFO and FATAL match up with verbs.The flip side is > that it having API names match the level names follows he KISS principle :) > which, in the end, I like better in this case. > > Gary > > -- > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > JUnit in Action, 2nd Ed: http://bit.ly/ECvg0 > Spring Batch in Action: http://bit.ly/bqpbCK > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory