
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 <ceki@qos.ch> 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
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) which lead me to the following link:
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-w...
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