I mean I'm sure up for it, if now three people are saying this is a good option. I'm halfway through porting my code to JCL, so, let's take a decision. :)
Shall we vote just to move forward here? I split my vote 0.5 for JCL and 0.5 for SLF4J, given the discussion to date. On Mon, May 12, 2008 at 6:05 PM, Ted Dunning <[EMAIL PROTECTED]> wrote: > SLF4J has the significant advantage that is can adapt easily to any mainline > logging convention when Mahout is included as part of some other project. > Whether the including project's convention is java.util, commons, log4j or > slf4j, the use of slf by us will allow our code to conform to the outer > level standard by the simple selection of which slf jar file the outer > project includes. This would make it much easier to adopt our software. > > I don't think that any other choice will allow that. > > On Mon, May 12, 2008 at 2:55 PM, Sean Owen (JIRA) <[EMAIL PROTECTED]> wrote: > > > > > [ > > > > https://issues.apache.org/jira/browse/MAHOUT-52?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12596212#action_12596212] > > > > Sean Owen commented on MAHOUT-52: > > --------------------------------- > > > > I could not agree more that logging is important. > > > > I think the blog post echoes my sentiment that a *facade* logging system > > probably adds little value in many situations. I'm not sure he was > > suggesting JCL itself is a bad choice. He also says what I suspected, that > > classloader-related gripes about JCL are not specific to JCL. If it's what > > I'm thinking of, yeah, this comes up for log4j or any other such system > > where a parent classloader's copy of the classes are used, but, it tries to > > load some class known only to the child classloader by reflection -- which > > would work fine when on the child classloader exists. > > > > If all that's right, then that's an equal argument against both JCL and > > SLF4J. I'd reopen the debate about whether we should use log4j or > > java.util.logging directly then, but I feel like there is some consensus > > here around just using what Hadoop uses since this will be tying in tightly > > with Hadoop. > > > > And then that is an arugment for JCL over SLF4J. > > > > SLF4J *does* have a nice solution for the "if (debug enabled) {...}" > > idiom, which is to use a lightweight message format system. I suppose I'd > > say it's no less necessary that the developer be cognizant of the > > performance issue here; the solution is just different. > > > > I suppose I am still not sold on using SLF4J but that's now two people > > that have voiced some support for it, so I am intrigued. At the moment I > > personally still find the "use what Hadoop uses" argument most compelling. > > If we introduce SLF4J... consider that then our combined package will use, > > count 'em, *four* different logging systems. > > > > (I really hope Hadoop standardizes here. I wonder if, eh, we can send over > > some patches?) > > > > > Standardize on java.util.logging, Commons Logging, log4j? > > > --------------------------------------------------------- > > > > > > Key: MAHOUT-52 > > > URL: https://issues.apache.org/jira/browse/MAHOUT-52 > > > Project: Mahout > > > Issue Type: Improvement > > > Reporter: Sean Owen > > > Priority: Minor > > > > > > I see the log4j and Commons Logging .jars in the lib/ directory. log4j > > isn't used; Commons Logging is used in one class (Parametered). My code > just > > used java.util.logging directly. > > > I figure we should standardize on one approach to logging. I personally > > think they're all just about the same; the only real best practice is using > > one system. > > > I have always just used java.util.logging since it is built into Java > > 1.4+. Commons Logging offers an extra layer of abstraction and lets you > > switch between java.util.logging and log4j underneath. That's cool, but > I've > > not found it compelling enough to want to add another layer and another > .jar > > file. > > > But, I guess log4j is present because hadoop uses it directly? The .jar > > seems to have a dependency on it. > > > In that case maybe we are better off using Commons Logging to let us > > integrate with log4j logging that Hadoop uses, and leave open the > > possibility of other callers using java.util.logging underneath. > > > If that's cool I can switch my code to use Commons Logging. > > > > -- > > This message is automatically generated by JIRA. > > - > > You can reply to this email to add a comment to the issue online. > > > > > > > -- > ted >