+1 Thanks, Eduard
On Sun, Feb 16, 2014 at 6:27 PM, Denis Gervalle <[email protected]> wrote: > +1 > > > On Sun, Feb 16, 2014 at 2:47 PM, Thomas Mortagne > <[email protected]>wrote: > > > +1 > > > > On Sat, Feb 15, 2014 at 6:13 PM, [email protected] <[email protected]> > > wrote: > > > Hi devs, > > > > > > On > > > http://dev.xwiki.org/xwiki/bin/view/Community/JavaCodeStyle#HLoggingBestPracticeswehave > some best practices defined for logging. > > > > > > I'd like to propose some additions. > > > > > > Best practices: > > > > > > * Use SLF4J > > > * If you're in a component get the logger injected using @Inject > private > > Logger logger otherwise use: > > > private static final Logger LOGGER = LoggerFactory.getLogger(My.class); > > > * Use logger.info() when it's absolutely necessary for the user to see > > the message in the logs. Usually only used at startup and we want to > limit > > what the user sees to the absolute necessary to avoid swamping him. > > > * Use logger.warning() when an error happens but it doesn't compromise > > the stability and general working of an XWiki instance. A warning just > > shows the user that something has gone wrong and it should provide him > with > > as much information as possible to solve the issue. Do not print a stack > > trace when you output a warning since stack traces fill the logs and > should > > be reserved for errors. In the view of users stack traces are synonymous > > with errors. We want it to be easy for admins to visually check the log > > files and see important problems (ie errors). > > > * Use logger.error() when there's an important problem that compromises > > the stability of the XWiki instance or that prevent an important system > > from working and that should not have happened. Always pass a stack trace > > when logging errors since it's something that shouldn't have happened an > a > > developer will need to debug the problem to fix it. > > > * Always log as much information as possible to make it easier to > > understand what's going on. > > > * Surround parameters with "[]" in order to separate visually the text > > from the parameters and also clearly notice when leading/trailing spaces > > are located in parameters. > > > * For improved performances, always use the vararg signature of SLF4J > > for logging parameters and do not concatenate them manually: > > > > > > this.logger.debug("Test message with [{}] and [{}]", param1, param2); > > > > > > vs > > > > > > this.logger.debug("Test message with [" + param1 + "] and [" + param2 + > > "]", param1, param2); > > > > > > * When logging a warning, we don't want to log the full stack trace but > > it's still interesting from time to time to display the root issue. If > you > > do the following you won't get the root issue: > > > > > > LOGGER.warn("Failed to determine if the index exists: [{}]. Trying to > > recreate the index..", e.getMessage()); > > > > > > Instead use ExceptionUtils from commons lang: > > > > > > LOGGER.warn("Failed to determine if the index exists: [{}]. Trying to > > recreate the index..", ExceptionUtils.getRootCauseMessage(e)); > > > > > > WDYT? > > > > > > Thanks > > > -Vincent > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > devs mailing list > > > [email protected] > > > http://lists.xwiki.org/mailman/listinfo/devs > > > > > > > > -- > > Thomas Mortagne > > _______________________________________________ > > devs mailing list > > [email protected] > > http://lists.xwiki.org/mailman/listinfo/devs > > > > > > -- > Denis Gervalle > SOFTEC sa - CEO > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

