blob: d2c77c6d266cec1d679e85218a3264af037d95ac [file] [log] [blame]
###############################################################################
# Copyright (c) 2005, 2007 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
###############################################################################
require 'monitor'
module XoredDebugger
class LoggerAdaptor
def initialize(logger)
@logger = logger
end
def puts(s)
@logger.log(s)
end
def close
@logger.close
end
end
module Logger
# By default log to stdout
@@logger = $stdout
@@monitor = Monitor.new
def Logger.setup(logger)
@@monitor.synchronize do
@@logger = logger
end
end
def log(s)
@@monitor.synchronize do
@@logger.puts("[" + Thread.current.object_id.to_s + "]\t" + s)
end
end
def close
@@monitor.synchronize do
@@logger.close
end
end
def logger
LoggerAdaptor.new(self)
end
end # module XoredDebugger
end # module XoredDebugger