So many answers in so little time. Thank you very much!
On Tue, Jul 2, 2013 at 6:20 PM, ceki <[email protected]> wrote: > Indeed, Integer.MAX_VALUE is 2^31. On a recent PC, an application doing > nothing but logging, can log around 100'000 messages per second. The > sequence number of such an application will reach 2^31 after about two > hours of continuous logging (or approx. 200 GB of logs). > > As David mentioned atomic long is probably a better alternative. > > import java.util.concurrent.atomic.**AtomicLong; > import ch.qos.logback.classic.spi.**ILoggingEvent; > import ch.qos.logback.classic.**pattern.ClassicConverter > > public class LocalSequenceNumberConverter extends ClassicConverter { > > AtomicLong sequenceNumber = new AtomicLong(0); > > > @Override > public String convert(ILoggingEvent event) { > return Long.toString(sequenceNumber.**getAndIncrement()); > } > } > > A volatile long is not guaranteed to work properly because incrementing a > long is not atomic whereas incrementing a int is. > > > > On 03.07.2013 00:01, David Roussel wrote: > >> Or use AtomicLong. >> >> David >> >> On 2 Jul 2013, at 22:50, ceki <[email protected]> wrote: >> >> >>> In your custom converter, declare a sequenceNumber as follows: >>> >>> *volatile* int sequenceNumber = 0; >>> >>> increment sequenceNumber for each new event: >>> >>> sequenceNumber++; >>> >>> That's it. >>> >>> On 02.07.2013 23:21, Felipe wrote: >>> >>>> Hi everyone: >>>> >>>> I'm writing to all of you because I want to display a sequence number >>>> for each event. I've done some research regarding this and I know for >>>> sure that LogBack is not able to natively handle this as Log4j2 does >>>> with %sn, or as JUL partially does with getSequenceNumber() (I won't be >>>> changing LogBack because of this, anyway). >>>> >>>> I know for sure LogBack is lacking this functionality because of this >>>> issue on JIRA: >>>> >>>> http://jira.qos.ch/browse/**LOGBACK-546<http://jira.qos.ch/browse/LOGBACK-546> >>>> >>>> That issue is a four years old boy now. >>>> >>>> I found a link on Stack Overflow >>>> (http://stackoverflow.com/**questions/11162951/line-** >>>> numbers-with-logback<http://stackoverflow.com/questions/11162951/line-numbers-with-logback> >>>> ) >>>> which lead me to the following link: >>>> >>>> http://logback.qos.ch/manual/**layouts.html#**customConversionSpecifier<http://logback.qos.ch/manual/layouts.html#customConversionSpecifier> >>>> >>>> I tried a static number but it was sred across threads so it didn't >>>> >>>> work that well. I also thought of ThreadLocal but I read a story which >>>> freaked me out: >>>> >>>> http://niklasschlimm.blogspot.**com/2012/04/threading-stories-** >>>> threadlocal-in-web.html<http://niklasschlimm.blogspot.com/2012/04/threading-stories-threadlocal-in-web.html> >>>> >>>> Does anyone know of a good way to achieve sequentials? >>>> >>>> Best regards and thanks in advance. >>>> >>>> -- >>>> Felipe >>>> >>>> >>>> > > -- > Ceki > 65% of statistics are made up on the spot > ______________________________**_________________ > Logback-user mailing list > [email protected] > http://mailman.qos.ch/mailman/**listinfo/logback-user<http://mailman.qos.ch/mailman/listinfo/logback-user> > -- Felipe
_______________________________________________ Logback-user mailing list [email protected] http://mailman.qos.ch/mailman/listinfo/logback-user
