Hi Isuru, On Thu, Jun 9, 2016 at 4:54 PM, Isuru Perera <[email protected]> wrote:
> > > On Thu, Jun 9, 2016 at 4:28 PM, Abimaran Kugathasan <[email protected]> > wrote: > >> I think, it's depends on the framework and their versions. >> >> latest versions of slf4j or log4j 2 don't require guard statements. >> > Have they mentioned about this somewhere? > If you check slf4j Log4jLoggerAdapter class debug method [1], you can see, the method itself check for whether logger is enabled for that level public void debug(String format, Object arg1, Object arg2) { if (logger.isDebugEnabled()) { FormattingTuple ft = MessageFormatter.format(format, arg1, arg2); logger.log(FQCN, Level.DEBUG, ft.getMessage(), ft.getThrowable()); } } [1] : http://www.slf4j.org/api/org/slf4j/impl/Log4jLoggerAdapter.html#debug(java.lang.String, java.lang.Object...) > They use a parameterized log statement so that an event can be logged >> unconditionally, but message formatting only occurs if the event is >> enabled. Message construction is performed as needed by the logger, rather >> than pre-emptively by the application. >> > That's right, but if we have a guard condition, there won't be a string > object created in the runtime. This is what I said earlier and we need to > avoid unnecessary strings. > >> >> On Thu, Jun 9, 2016 at 3:13 PM, Isuru Perera <[email protected]> wrote: >> >>> I think it's better to use isDebugEnabled for any debug log, even if it >>> is using parameters for a formatted string. If the debug is not enabled, we >>> don't even want to create the String object. >>> >>> No need to assign to a final variable. Checking the condition just >>> before logging should be enough. >>> >>> On Thu, Jun 9, 2016 at 3:06 PM, Afkham Azeez <[email protected]> wrote: >>> >>>> No need to do isDebugEnabled ideally for formatted logs. >>>> >>>> On Thu, Jun 9, 2016 at 3:01 PM, Jayanga Kaushalya <[email protected]> >>>> wrote: >>>> >>>>> Hi, >>>>> >>>>> Do we need to check whether the isDebugEnabled() for formatted debug >>>>> logs without any string concatenations? For example below code: >>>>> >>>>> if (log.isDebugEnabled) { >>>>> log.debug("Test log with var: {} and var: {}", var1, var2); >>>>> } >>>>> >>>>> If we have to check it is, what is the best way to check it? Assign it >>>>> to a final variable in the class header or check it every time where their >>>>> is a debug log like above code? >>>>> >>>>> Thanks! >>>>> >>>>> *Jayanga Kaushalya* >>>>> Software Engineer >>>>> Mobile: +94777860160 >>>>> WSO2 Inc. | http://wso2.com >>>>> lean.enterprise.middleware >>>>> >>>> >>>> >>>> >>>> -- >>>> *Afkham Azeez* >>>> Director of Architecture; WSO2, Inc.; http://wso2.com >>>> Member; Apache Software Foundation; http://www.apache.org/ >>>> * <http://www.apache.org/>* >>>> *email: **[email protected]* <[email protected]> >>>> * cell: +94 77 3320919 <%2B94%2077%203320919>blog: * >>>> *http://blog.afkham.org* <http://blog.afkham.org> >>>> *twitter: **http://twitter.com/afkham_azeez* >>>> <http://twitter.com/afkham_azeez> >>>> *linked-in: **http://lk.linkedin.com/in/afkhamazeez >>>> <http://lk.linkedin.com/in/afkhamazeez>* >>>> >>>> *Lean . Enterprise . Middleware* >>>> >>>> _______________________________________________ >>>> Dev mailing list >>>> [email protected] >>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>> >>>> >>> >>> >>> -- >>> Isuru Perera >>> Associate Technical Lead | WSO2, Inc. | http://wso2.com/ >>> Lean . Enterprise . Middleware >>> >>> about.me/chrishantha >>> Contact: +IsuruPereraWSO2 >>> <https://www.google.com/+IsuruPereraWSO2/about> >>> >>> _______________________________________________ >>> Dev mailing list >>> [email protected] >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> Thanks >> Abimaran Kugathasan >> Senior Software Engineer >> >> Email : [email protected] >> Mobile : +94 773922820 >> >> <http://stackoverflow.com/users/515034> >> <http://lk.linkedin.com/in/abimaran> >> <http://www.lkabimaran.blogspot.com/> <https://github.com/abimarank> >> <https://twitter.com/abimaran> >> >> > > > -- > Isuru Perera > Associate Technical Lead | WSO2, Inc. | http://wso2.com/ > Lean . Enterprise . Middleware > > about.me/chrishantha > Contact: +IsuruPereraWSO2 <https://www.google.com/+IsuruPereraWSO2/about> > -- Thanks Abimaran Kugathasan Senior Software Engineer Email : [email protected] Mobile : +94 773922820 <http://stackoverflow.com/users/515034> <http://lk.linkedin.com/in/abimaran> <http://www.lkabimaran.blogspot.com/> <https://github.com/abimarank> <https://twitter.com/abimaran>
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
