@ -51,13 +51,14 @@ public final class ConcurrentLog {
private final static Message POISON_MESSAGE = new Message ( ) ;
private final static BlockingQueue < Message > logQueue = new ArrayBlockingQueue < Message > ( 500 ) ;
private static Worker logRunnerThread = null ;
public static boolean backgroundRunner = false ;
static {
ensureWorkerIsRunning ( ) ;
}
public static void ensureWorkerIsRunning ( ) {
if ( logRunnerThread = = null | | ! logRunnerThread . isAlive ( ) ) {
if ( backgroundRunner & & ( logRunnerThread = = null | | ! logRunnerThread . isAlive ( ) ) ) {
logRunnerThread = new Worker ( ) ;
logRunnerThread . start ( ) ;
//ConcurrentLogLogger.log(Level.INFO, "started ConcurrentLog.Worker.");
@ -252,7 +253,7 @@ public final class ConcurrentLog {
// private
private final static void enQueueLog ( final Logger logger , final Level level , final String message , final Throwable thrown ) {
if ( ! logger . isLoggable ( level ) ) return ;
if ( logRunnerThread = = null | | ! logRunnerThread . isAlive ( ) ) {
if ( ! backgroundRunner | | logRunnerThread = = null | | ! logRunnerThread . isAlive ( ) ) {
if ( thrown = = null ) logger . log ( level , "* " + message ) ; else logger . log ( level , "* " + message , thrown ) ; // the * is inefficient, but should show up only in emergency cases
} else {
try {
@ -265,7 +266,7 @@ public final class ConcurrentLog {
private final static void enQueueLog ( final Logger logger , final Level level , final String message ) {
if ( ! logger . isLoggable ( level ) ) return ;
if ( logRunnerThread = = null | | ! logRunnerThread . isAlive ( ) ) {
if ( ! backgroundRunner | | logRunnerThread = = null | | ! logRunnerThread . isAlive ( ) ) {
logger . log ( level , "* " + message ) ; // the * is inefficient, but should show up only in emergency cases
} else {
try {
@ -277,7 +278,7 @@ public final class ConcurrentLog {
}
private final static void enQueueLog ( final String loggername , final Level level , final String message , final Throwable thrown ) {
if ( logRunnerThread = = null | | ! logRunnerThread . isAlive ( ) ) {
if ( ! backgroundRunner | | logRunnerThread = = null | | ! logRunnerThread . isAlive ( ) ) {
if ( thrown = = null ) Logger . getLogger ( loggername ) . log ( level , "* " + message ) ; else Logger . getLogger ( loggername ) . log ( level , "* " + message , thrown ) ; // the * is inefficient, but should show up only in emergency cases
} else {
try {
@ -289,7 +290,7 @@ public final class ConcurrentLog {
}
private final static void enQueueLog ( final String loggername , final Level level , final String message ) {
if ( logRunnerThread = = null | | ! logRunnerThread . isAlive ( ) ) {
if ( ! backgroundRunner | | logRunnerThread = = null | | ! logRunnerThread . isAlive ( ) ) {
Logger . getLogger ( loggername ) . log ( level , "* " + message ) ; // the * is inefficient, but should show up only in emergency cases
} else {
try {