On Mon, Feb 23, 2015 at 11:32 AM, Isuru Perera <is...@apache.org> wrote:
> Hi, > > I agree with every point except for skipping isInfoEnabled(). I believe we > must use these guard conditions. Some might decide to run Stratos with only > Error/Warn level logs. We might avoid guard conditions for error/fatal > level logs. > Agree. Let's enable that flexibility as well. So if we use that, we should use them all occasions we log info. Mari, Shall we go ahead and create a page? Thanks. > > And use String.format. Always avoid concatenation. String.format is much > better than concatenation and it helps string pooling as well. > > Thanks! > > On Mon, Feb 23, 2015 at 11:22 AM, Rajkumar Rajaratnam <rajkum...@wso2.com> > wrote: > >> +1 Lahiru. >> >> Also if you are logging an object, make sure you are overriding >> toString() method of the class. Otherwise the log is nothing but a garbage. >> Just got this log on master branch. >> >> *Rule executed for: >> org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext@42c0a4d8* >> >> ClusterLevelPartitionContext class doesn't override toString() method. >> >> Thanks. >> >> On Mon, Feb 23, 2015 at 7:27 AM, Lahiru Sandaruwan <lahi...@wso2.com> >> wrote: >> >>> Hi all, >>> >>> There are lot of different approaches of logging in Stratos code. May be >>> we can follow same format so that code looks clean and understandable. This >>> is to decide which way we should follow. >>> >>> *1. Separation of objects* >>> >>> We are using square brackets in most of the places. I think that is a >>> good approach. May be we can use a comma after one object. We need to >>> decide. >>> >>> E.g. 1 >>> >>> [network-partition] network-partition-1 [cluster-instance] >>> single-cartridge-app-1 [cluster] php1.php.domain >>> >>> E.g. 2 >>> >>> [network-partition] network-partition-1, [cluster-instance] >>> single-cartridge-app-1, [cluster] php1.php.domain >>> >>> *2. Using same text for identifying a particular type* >>> E.g. We use [network-parition], [NW partition], [network partition] in >>> different places. We could stick to one. >>> >>> *3. Using the String.format or concatenation. * >>> >>> String.format brings clarity and readability while it reduces the >>> performance against concatenation. We need to decide what should be our >>> choice. I would vote for String.format considering performance gain is >>> negligible if we only have info level logs. >>> >>> *4. Use isDebugEnabled() and don't use isInfoEnabled()* >>> >>> Regarding this, we must use *isDebugEnabled* everywhere we do debug >>> logging. But i think we can skip *isInfoEnabled *assuming we will have >>> info logs in limited numbers. Wdyt? >>> >>> We can add a guidance at [2] for developers regarding all the matters >>> here, after deciding. >>> >>> Thanks. >>> >>> [1] >>> http://stackoverflow.com/questions/925423/is-it-better-practice-to-use-string-format-over-string-concatenation-in-java >>> [2] https://cwiki.apache.org/confluence/display/STRATOS/Developer+Guide >>> -- >>> -- >>> Lahiru Sandaruwan >>> Committer and PMC member, Apache Stratos, >>> Senior Software Engineer, >>> WSO2 Inc., http://wso2.com >>> lean.enterprise.middleware >>> >>> email: lahi...@wso2.com blog: http://lahiruwrites.blogspot.com/ >>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146 >>> >>> >> >> >> -- >> Rajkumar Rajaratnam >> Committer & PMC Member, Apache Stratos >> Software Engineer, WSO2 >> >> Mobile : +94777568639 >> Blog : rajkumarr.com >> >> -- >> <http://rajkumarr.com> >> <http://rajkumarr.com> >> Isuru Perera >> Senior Software Engineer | WSO2, Inc. | <http://rajkumarr.com> >> http://wso2.com/ >> Lean . Enterprise . Middleware >> >> about.me/chrishantha >> > -- -- Lahiru Sandaruwan Committer and PMC member, Apache Stratos, Senior Software Engineer, WSO2 Inc., http://wso2.com lean.enterprise.middleware email: lahi...@wso2.com blog: http://lahiruwrites.blogspot.com/ linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146