View Javadoc
1   /**
2    * Logback: the reliable, generic, fast and flexible logging framework.
3    * Copyright (C) 1999-2015, QOS.ch. All rights reserved.
4    *
5    * This program and the accompanying materials are dual-licensed under
6    * either the terms of the Eclipse Public License v1.0 as published by
7    * the Eclipse Foundation
8    *
9    *   or (per the licensee's choosing)
10   *
11   * under the terms of the GNU Lesser General Public License version 2.1
12   * as published by the Free Software Foundation.
13   */
14  package ch.qos.logback.classic.issue.lbclassic135;
15  
16  import org.slf4j.Logger;
17  import ch.qos.logback.core.contention.RunnableWithCounterAndDone;
18  
19  public class LoggingRunnable extends RunnableWithCounterAndDone {
20  
21      final Logger logger;
22      final int burstLength;
23  
24      public LoggingRunnable(Logger logger, int burstLength) {
25          this.logger = logger;
26          this.burstLength = burstLength;
27      }
28  
29      public LoggingRunnable(Logger logger) {
30          this(logger, 10);
31      }
32  
33      public void run() {
34          while (!isDone()) {
35              logger.info("hello world ABCDEFGHI");
36              counter++;
37              // don't hog the CPU forever
38              if (counter % burstLength == 0) {
39                  try {
40                      Thread.sleep(1);
41                  } catch (InterruptedException e) {
42                      e.printStackTrace();
43                  }
44              }
45          }
46      }
47  
48  }