Hi John, The enhancement is mainly for support purpose. For instance, if someone has a solution installed and they run into problem with Shindig then they would need to read the info and/or warning messages in their language if they're non-English speakers. They might also need to either report the issue or resolve it which consequently need to gather log and trace on the problem. We can expand the logging for outward-facing if there's a requirement and welcome any suggestion from you. Thanks! Han
From: John Hjelmstad <[email protected]> To: [email protected] Date: 08/11/2010 10:31 PM Subject: Re: Logging enhancement for Shindig Java Hi Han: You're right that there really is none. What's the main use case for outward-facing logging in this way? --John On Wed, Aug 11, 2010 at 7:27 PM, Han Nguyen <[email protected]> wrote: > I posted a question asking whether Shindig Java currently support any > internationalization, and haven't heard back from anyone. Based on what > I've seen in the code so far, I assume that there's none and would like to > propose the following: > > We found that java.util.logging.Logger.logp() provides enough support for > logging messages on Shindig Java side entailing its origin such as class > name, method name, and message key for translation/subtitution, etc. > > Phase1- Adding translation for existing log INFO and log WARN using > java.util.logging.Logger.logp() > > For each module shindig-common, shindig-gadgets, shindig-samples, and > shindig-social-api > 1. Add a new Java package and new interface > org.apache.shindig.logging.i18n.LoggingKeys Interface to centralize all > message keys including the message resource bundle in one place. > 2. Add org.apache.shindig.logging.i18n in java/resources, then add > resource bundle messages.properties and its variation translation files > here. > 3. Update Logger instantiation to load the message resource bundle. Ex: > Logger.getLogger(classname,LoggingKeys.MESSAGES);//where MESSAGES=" > org.apache.shindig.logging.i18n.messages" defined in step 1 > 4. Update all existing INFO and WARNING messages to use the supported > logp() APIs for localization, we should also check for the log level > before invoking logp(). For example: > if (logger.isLoggable(Level.INFO)) { > logger.logp(Level.INFO, classname, methodname, LoggingKeys. > A_MESSAGE_KEY); > } > 5. We'll try to do a few language translation for the messages.properties, > and need help with the rest. > > Phase 2 - Adding log FINER for major method entries and exits to aid with > debugging following similar pattern in step 4 which is checking for > logging level before invoking the log method. > We don't think there's any need to add i18n support for debug logging. > > if (logger.isLoggable(Level.FINER)) logger.entering(className, > "mymethod(input params)"); > > OR > > if (logger.isLoggable(Level.FINER)) logger.exiting(className, > "mymethod(input params)"); > > Although this enhancement touches a lot of code, it will not likely change > any functionality of the code. > Please provide feedbacks because we'd like to have your agreement and > support on a common logging pattern to help better support Shindig code > base. > If there're no objections I will open a JIRA to track our progress by the > end of the week. > Thanks, > Han
