001/** 002 * Logback: the reliable, generic, fast and flexible logging framework. 003 * Copyright (C) 1999-2015, QOS.ch. All rights reserved. 004 * 005 * This program and the accompanying materials are dual-licensed under 006 * either the terms of the Eclipse Public License v1.0 as published by 007 * the Eclipse Foundation 008 * 009 * or (per the licensee's choosing) 010 * 011 * under the terms of the GNU Lesser General Public License version 2.1 012 * as published by the Free Software Foundation. 013 */ 014package ch.qos.logback.classic.issue.lbclassic135.lbclassic139; 015 016import org.slf4j.Logger; 017 018import ch.qos.logback.classic.LoggerContext; 019import ch.qos.logback.core.contention.RunnableWithCounterAndDone; 020 021/** 022 * 023 * @author Olivier Cailloux 024 * 025 */ 026public class Accessor extends RunnableWithCounterAndDone { 027 private Logger logger; 028 final Worker worker; 029 final LoggerContext loggerContext; 030 031 Accessor(Worker worker, LoggerContext lc) { 032 this.worker = worker; 033 this.loggerContext = lc; 034 logger = lc.getLogger(this.getClass()); 035 } 036 037 public void run() { 038 print("entered run()"); 039 // Thread.yield(); 040 while (!isDone()) { 041 logger.info("Current worker status is: {}.", worker); 042 } 043 print("leaving run()"); 044 } 045 046 void print(String msg) { 047 String thread = Thread.currentThread().getName(); 048 System.out.println("[" + thread + "] " + msg); 049 } 050}