package net.md_5.bungee.log;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.logging.LogRecord;
public class LogDispatcher extends Thread
{
private final BungeeLogger logger;
private final BlockingQueue<LogRecord> queue = new LinkedBlockingQueue<>();
public LogDispatcher(BungeeLogger logger)
{
super( "BungeeCord Logger Thread" );
this.logger = logger;
}
@Override
public void run()
{
while ( !isInterrupted() )
{
LogRecord record;
try
{
record = queue.take();
} catch ( InterruptedException ex )
{
continue;
}
logger.doLog( record );
}
for ( LogRecord record : queue )
{
logger.doLog( record );
}
}
public void queue(LogRecord record)
{
if ( !isInterrupted() )
{
queue.add( record );
}
}
}