diff --git a/src/as/Log.as b/src/as/Log.as new file mode 100644 index 000000000..d9002ce53 --- /dev/null +++ b/src/as/Log.as @@ -0,0 +1,102 @@ +package { + +import flash.utils.getQualifiedClassName; + +import mx.logging.ILogger; +import mx.logging.LogEventLevel; + +import mx.logging.targets.TraceTarget; + +/** + * A simple logging mechanism built on top of the standard mx logging + * facilities. + * + * This class need not be imported. + * + * Typical usage for creating a Log to be used by the entire class would be: + * public class MyClass + * { + * private static const log :Log = Log.getLog(MyClass); + * ... + * + * OR, if you just need a one-off Log: + * protected function doStuff (thingy :Thingy) :void + * { + * if (thingy == null) { + * Log.getLog(this).warn("thiny is null!"); + * .... + */ +public class Log +{ + /** + * Retrieve a Log for the specififed class. + * + * @param spec can be any Object or Class specifier. + */ + public static function getLog (spec :*) :Log + { + // let's just use the full classname + var path :String = getQualifiedClassName(spec).replace("::", "."); + return new Log(mx.logging.Log.getLogger(path)); + } + + /** + * @private + */ + public function Log (dest :ILogger) + { + _dest = dest; + } + + /** + * Log a message with 'debug' priority. + */ + public function debug (... messages) :void + { + _dest.debug.apply(_dest, messages); + } + + /** + * Log a message with 'info' priority. + */ + public function info (... messages) :void + { + _dest.info.apply(_dest, messages); + } + + /** + * Log a message with 'debug' priority. + */ + public function warning (... messages) :void + { + _dest.warn.apply(_dest, messages); + } + + /** + * Log a message with 'debug' priority. + */ + public function logStackTrace (error :Error) :void + { + _dest.warn(error.getStackTrace()); + } + + /** + * Our static (class) initializer. + */ + private static function staticInit () :void + { + var targ :TraceTarget = new TraceTarget(); + targ.includeCategory = targ.includeDate = targ.includeLevel = + targ.includeTime = true; + targ.filters = ["*"]; // TODO + targ.level = LogEventLevel.DEBUG; + mx.logging.Log.addTarget(targ); + } + + staticInit(); // call the static initializer + + /** Our true destination. */ + protected var _dest :ILogger; +} + +} diff --git a/src/as/com/threerings/crowd/Log.as b/src/as/com/threerings/crowd/Log.as deleted file mode 100644 index 27d87b7d7..000000000 --- a/src/as/com/threerings/crowd/Log.as +++ /dev/null @@ -1,36 +0,0 @@ -package com.threerings.crowd { - -import mx.logging.ILogger; - -import com.threerings.util.LogDaddy; - -public class Log extends LogDaddy -{ - /** The Logger for this package. */ - public static var log :ILogger = getLogger("crowd"); - - /** Convenience function. */ - public static function debug (message :String, ... rest) :void - { - log.debug(message, rest); - } - - /** Convenience function. */ - public static function info (message :String, ... rest) :void - { - log.info(message, rest); - } - - /** Convenience function. */ - public static function warning (message :String, ... rest) :void - { - log.warn(message, rest); - } - - /** Convenience function. */ - public static function logStackTrace (err :Error) :void - { - log.warn(err.getStackTrace()); - } -} -} diff --git a/src/as/com/threerings/crowd/chat/client/ChatDirector.as b/src/as/com/threerings/crowd/chat/client/ChatDirector.as index 97593b21b..f08f5772b 100644 --- a/src/as/com/threerings/crowd/chat/client/ChatDirector.as +++ b/src/as/com/threerings/crowd/chat/client/ChatDirector.as @@ -43,7 +43,6 @@ import com.threerings.util.MessageManager; import com.threerings.util.Name; import com.threerings.util.TimeUtil; -import com.threerings.crowd.Log; import com.threerings.crowd.client.LocationObserver; import com.threerings.crowd.data.BodyObject; import com.threerings.crowd.data.PlaceObject; @@ -88,7 +87,8 @@ public class ChatDirector extends BasicDirector _cctx.getLocationDirector().addLocationObserver(this); if (_bundle == null || _msgmgr == null) { - com.threerings.crowd.Log.warning("Null bundle or message manager given to ChatDirector"); + Log.getLog(this).warning( + "Null bundle or message manager given to ChatDirector"); return; } var msg :MessageBundle = _msgmgr.getBundle(_bundle); @@ -906,7 +906,7 @@ public class ChatDirector extends BasicDirector if (bundle != null && _msgmgr != null) { var msgb :MessageBundle = _msgmgr.getBundle(bundle); if (msgb == null) { - com.threerings.crowd.Log.warning( + Log.getLog(this).warning( "No message bundle available to translate message " + "[bundle=" + bundle + ", message=" + message + "]."); } else { diff --git a/src/as/com/threerings/crowd/client/LocationDirector.as b/src/as/com/threerings/crowd/client/LocationDirector.as index 42c8cceb7..5441139a3 100644 --- a/src/as/com/threerings/crowd/client/LocationDirector.as +++ b/src/as/com/threerings/crowd/client/LocationDirector.as @@ -33,7 +33,6 @@ import com.threerings.presents.dobj.ObjectAccessError; import com.threerings.presents.dobj.Subscriber; import com.threerings.presents.dobj.SubscriberAdapter; -import com.threerings.crowd.Log; import com.threerings.crowd.data.BodyObject; import com.threerings.crowd.data.LocationCodes; import com.threerings.crowd.data.PlaceConfig; @@ -50,19 +49,7 @@ import com.threerings.crowd.util.CrowdContext; public class LocationDirector extends BasicDirector implements Subscriber, LocationReceiver { - /** - * Used to recover from a moveTo request that was accepted but - * resulted in a failed attempt to fetch the place object to which we - * were moving. - */ -// public static interface FailureHandler -// { -// /** -// * Should instruct the client to move to the last known working -// * location (as well as clean up after the failed moveTo request). -// */ -// public void recoverFailedMove (int placeId); -// } + private static const log :Log = Log.getLog(LocationDirector); /** * Constructs a location director which will configure itself for @@ -128,7 +115,7 @@ public class LocationDirector extends BasicDirector { // make sure the placeId is valid if (placeId < 0) { - Log.warning("Refusing moveTo(): invalid placeId " + placeId + "."); + log.warning("Refusing moveTo(): invalid placeId " + placeId + "."); return false; } @@ -149,13 +136,13 @@ public class LocationDirector extends BasicDirector // minute, go ahead and let this new one through in an attempt // to recover from dropped moveTo requests if (refuse) { - Log.warning("Refusing moveTo; We have a request outstanding " + + log.warning("Refusing moveTo; We have a request outstanding " + "[ppid=" + _pendingPlaceId + ", npid=" + placeId + "]."); return false; } else { - Log.warning("Overriding stale moveTo request " + + log.warning("Overriding stale moveTo request " + "[ppid=" + _pendingPlaceId + ", npid=" + placeId + "]."); } @@ -179,7 +166,7 @@ public class LocationDirector extends BasicDirector var placeId :int = _pendingPlaceId; _pendingPlaceId = -1; - Log.info("moveTo failed [pid=" + placeId + + log.info("moveTo failed [pid=" + placeId + ", reason=" + reason + "]."); // let our observers know that something has gone horribly awry @@ -187,7 +174,7 @@ public class LocationDirector extends BasicDirector }; // issue a moveTo request - Log.info("Issuing moveTo(" + placeId + ")."); + log.info("Issuing moveTo(" + placeId + ")."); _lservice.moveTo(_cctx.getClient(), placeId, new MoveAdapter(success, failure)); return true; @@ -276,9 +263,9 @@ public class LocationDirector extends BasicDirector try { _controller.mayLeavePlace(_plobj); } catch (e :Error) { - Log.warning("Place controller choked in " + + log.warning("Place controller choked in " + "mayLeavePlace [plobj=" + _plobj + "]."); - Log.logStackTrace(e); + log.logStackTrace(e); } } } @@ -315,7 +302,7 @@ public class LocationDirector extends BasicDirector // check whether we should use a custom class loader _controller = config.createController(); if (_controller == null) { - Log.warning("Place config returned null controller " + + log.warning("Place config returned null controller " + "[config=" + config + "]."); return; } @@ -339,9 +326,9 @@ public class LocationDirector extends BasicDirector try { _controller.didLeavePlace(_plobj); } catch (e :Error) { - Log.warning("Place controller choked in " + + log.warning("Place controller choked in " + "didLeavePlace [plobj=" + _plobj + "]."); - Log.logStackTrace(e); + log.logStackTrace(e); } _controller = null; } @@ -405,7 +392,7 @@ public class LocationDirector extends BasicDirector }; var failure :Function = function ( oid :int, cause :ObjectAccessError) :void { - Log.warning("Location director unable to fetch body " + + log.warning("Location director unable to fetch body " + "object; all has gone horribly wrong" + "[cause=" + cause + "]."); }; @@ -453,7 +440,7 @@ public class LocationDirector extends BasicDirector // documentation inherited from interface public function forcedMove (placeId :int) :void { - Log.info("Moving at request of server [placeId=" + placeId + "]."); + log.info("Moving at request of server [placeId=" + placeId + "]."); if (movePending()) { // clear out our old place information @@ -476,9 +463,9 @@ public class LocationDirector extends BasicDirector try { _controller.willEnterPlace(_plobj); } catch (e :Error) { - Log.warning("Controller choked in willEnterPlace " + + log.warning("Controller choked in willEnterPlace " + "[place=" + _plobj + "]."); - Log.logStackTrace(e); + log.logStackTrace(e); } } @@ -491,7 +478,7 @@ public class LocationDirector extends BasicDirector { // aiya! we were unable to fetch our new place object; something // is badly wrong - Log.warning("Aiya! Unable to fetch place object for new location " + + log.warning("Aiya! Unable to fetch place object for new location " + "[plid=" + oid + ", reason=" + cause + "]."); // clear out our half initialized place info @@ -533,7 +520,7 @@ public class LocationDirector extends BasicDirector // public void setFailureHandler (FailureHandler handler) // { // if (_failureHandler != null) { -// Log.warning("Requested to set failure handler, but we've " + +// log.warning("Requested to set failure handler, but we've " + // "already got one. The conflicting entities will " + // "likely need to perform more sophisticated " + // "coordination to deal with failures. " + diff --git a/src/as/com/threerings/crowd/client/LocationDirector_FailureHandler.as b/src/as/com/threerings/crowd/client/LocationDirector_FailureHandler.as new file mode 100644 index 000000000..3b072234d --- /dev/null +++ b/src/as/com/threerings/crowd/client/LocationDirector_FailureHandler.as @@ -0,0 +1,17 @@ +package com.threerings.crowd.client { + +/** + * Used to recover from a moveTo request that was accepted but + * resulted in a failed attempt to fetch the place object to which we + * were moving. + */ +public interface LocationDirector_FailureHandler +{ + /** + * Should instruct the client to move to the last known working + * location (as well as clean up after the failed moveTo request). + */ + function recoverFailedMove (placeId :int) :void; +} + +} diff --git a/src/as/com/threerings/crowd/client/OccupantDirector.as b/src/as/com/threerings/crowd/client/OccupantDirector.as index f51eaa555..e809b9a02 100644 --- a/src/as/com/threerings/crowd/client/OccupantDirector.as +++ b/src/as/com/threerings/crowd/client/OccupantDirector.as @@ -33,7 +33,6 @@ import com.threerings.presents.dobj.EntryRemovedEvent; import com.threerings.presents.dobj.EntryUpdatedEvent; import com.threerings.presents.dobj.SetListener; -import com.threerings.crowd.Log; import com.threerings.crowd.data.OccupantInfo; import com.threerings.crowd.data.PlaceObject; import com.threerings.crowd.util.CrowdContext; diff --git a/src/as/com/threerings/crowd/client/PlaceViewUtil.as b/src/as/com/threerings/crowd/client/PlaceViewUtil.as index 1e7bde7c9..39f5e3f32 100644 --- a/src/as/com/threerings/crowd/client/PlaceViewUtil.as +++ b/src/as/com/threerings/crowd/client/PlaceViewUtil.as @@ -23,7 +23,6 @@ package com.threerings.crowd.client { import flash.display.DisplayObjectContainer; -import com.threerings.crowd.Log; import com.threerings.crowd.data.PlaceObject; /** @@ -72,9 +71,10 @@ public class PlaceViewUtil try { (root as PlaceView)[funct](plobj); } catch (e :Error) { - Log.warning("Component choked on " + funct + "() " + + var log :Log = Log.getLog(PlaceViewUtil); + log.warning("Component choked on " + funct + "() " + "[component=" + root + ", plobj=" + plobj + "]."); - Log.logStackTrace(e); + log.logStackTrace(e); } } diff --git a/src/as/com/threerings/crowd/data/BodyObject.as b/src/as/com/threerings/crowd/data/BodyObject.as index 3b3be94a3..faeb99502 100644 --- a/src/as/com/threerings/crowd/data/BodyObject.as +++ b/src/as/com/threerings/crowd/data/BodyObject.as @@ -24,7 +24,6 @@ package com.threerings.crowd.data { import com.threerings.util.Byte; import com.threerings.util.Name; -//import com.threerings.presents.Log; import com.threerings.presents.data.ClientObject; import com.threerings.presents.data.InvocationCodes; @@ -131,13 +130,9 @@ public class BodyObject extends ClientObject { super.readObject(ins); - Log.debug("Reading username"); username = (ins.readObject() as Name); - Log.debug("Reading location"); location = ins.readInt(); - Log.debug("Reading status"); status = ins.readByte(); - Log.debug("Reading awayMessage"); awayMessage = (ins.readField(String) as String); } diff --git a/src/as/com/threerings/crowd/data/PlaceObject.as b/src/as/com/threerings/crowd/data/PlaceObject.as index 53b950488..e54bc3fa8 100644 --- a/src/as/com/threerings/crowd/data/PlaceObject.as +++ b/src/as/com/threerings/crowd/data/PlaceObject.as @@ -32,7 +32,6 @@ import com.threerings.presents.dobj.DSet; import com.threerings.presents.dobj.DSet_Entry; import com.threerings.presents.dobj.OidList; -import com.threerings.crowd.Log; import com.threerings.crowd.chat.data.SpeakMarshaller; //import com.threerings.crowd.chat.data.SpeakObject; diff --git a/src/as/com/threerings/io/FrameReader.as b/src/as/com/threerings/io/FrameReader.as index ac7a69adb..6a7e0fd15 100644 --- a/src/as/com/threerings/io/FrameReader.as +++ b/src/as/com/threerings/io/FrameReader.as @@ -8,8 +8,6 @@ import flash.net.Socket; import flash.utils.ByteArray; import flash.utils.Endian; -import com.threerings.presents.Log; - /** * Reads socket data until a complete frame is available. * This dispatches a FrameAvailableEvent.FRAME_AVAILABLE once a frame @@ -28,7 +26,7 @@ public class FrameReader extends EventDispatcher */ protected function socketHasData (event :ProgressEvent) :void { - Log.debug("socketHasData(" + _socket.bytesAvailable + ")"); + Log.getLog(this).debug("socketHasData(" + _socket.bytesAvailable + ")"); if (_curData == null) { if (_socket.bytesAvailable < HEADER_SIZE) { // if there are less bytes available than a header, let's @@ -54,7 +52,7 @@ public class FrameReader extends EventDispatcher if (_length === _curData.length) { // we have now read a complete frame, let us dispatch the data _curData.position = 0; // move the read pointer to the beginning - Log.debug("+ FrameAvailable"); + Log.getLog(this).debug("+ FrameAvailable"); dispatchEvent(new FrameAvailableEvent(_curData)); _curData = null; // clear, so we know we need to first read length diff --git a/src/as/com/threerings/io/ObjectInputStream.as b/src/as/com/threerings/io/ObjectInputStream.as index 0401abfc0..eff03df11 100644 --- a/src/as/com/threerings/io/ObjectInputStream.as +++ b/src/as/com/threerings/io/ObjectInputStream.as @@ -9,6 +9,8 @@ import com.threerings.util.ClassUtil; public class ObjectInputStream { + private static const log :Log = Log.getLog(ObjectInputStream); + public function ObjectInputStream (source :IDataInput = null) { if (source == null) { @@ -35,7 +37,7 @@ public class ObjectInputStream // a zero code indicates a null value if (code == 0) { - Log.debug(DEBUG_ID + "Read null"); + log.debug(DEBUG_ID + "Read null"); return null; } @@ -49,21 +51,21 @@ public class ObjectInputStream // read in the class metadata var cname :String = Translations.getFromServer(readUTF()); -// Log.debug("read cname: " + cname); +// log.debug("read cname: " + cname); var streamer :Streamer = Streamer.getStreamerByJavaName(cname); if (streamer == Streamer.BAD_STREAMER) { - Log.warning("OMG, cannot stream " + cname); + log.warning("OMG, cannot stream " + cname); return null; } -// Log.debug("Got streamer (" + streamer + ")"); +// log.debug("Got streamer (" + streamer + ")"); cmap = new ClassMapping(code, cname, streamer); _classMap[code] = cmap; - Log.debug(DEBUG_ID + + log.debug(DEBUG_ID + "Created mapping: (" + code + "): " + cname); } else { - Log.debug(DEBUG_ID + "Read known code: (" + code + ")"); + log.debug(DEBUG_ID + "Read known code: (" + code + ")"); cmap = (_classMap[code] as ClassMapping); if (null == cmap) { throw new IOError("Read object for which we have no " + @@ -71,7 +73,7 @@ public class ObjectInputStream } } -// Log.debug("Creating object sleeve..."); +// log.debug("Creating object sleeve..."); var target :Object; if (cmap.streamer === null) { var clazz :Class = ClassUtil.getClassByName(cmap.classname); @@ -80,9 +82,9 @@ public class ObjectInputStream } else { target = cmap.streamer.createObject(this); } - //Log.debug("Reading object..."); + //log.debug("Reading object..."); readBareObjectImpl(target, cmap.streamer); - Log.debug(DEBUG_ID + "Read object: " + target); + log.debug(DEBUG_ID + "Read object: " + target); return target; } catch (me :MemoryError) { diff --git a/src/as/com/threerings/io/ObjectOutputStream.as b/src/as/com/threerings/io/ObjectOutputStream.as index 6d861dba3..8b9579748 100644 --- a/src/as/com/threerings/io/ObjectOutputStream.as +++ b/src/as/com/threerings/io/ObjectOutputStream.as @@ -8,6 +8,8 @@ import com.threerings.util.HashMap; public class ObjectOutputStream { + private static const log :Log = Log.getLog(ObjectOutputStream); + public function ObjectOutputStream (targ :IDataOutput) { _targ = targ; @@ -38,7 +40,7 @@ public class ObjectOutputStream // streamer may be null to indicate a Streamable object if (streamer == Streamer.BAD_STREAMER) { // TODO - Log.warning("OMG, cannot stream " + cname); + log.warning("OMG, cannot stream " + cname); return; } diff --git a/src/as/com/threerings/io/TypedArray.as b/src/as/com/threerings/io/TypedArray.as index 476aa44ad..60761b657 100644 --- a/src/as/com/threerings/io/TypedArray.as +++ b/src/as/com/threerings/io/TypedArray.as @@ -1,7 +1,5 @@ package com.threerings.io { -import com.threerings.presents.Log; - public dynamic class TypedArray extends Array { public function TypedArray (jtype :String) diff --git a/src/as/com/threerings/io/streamers/ArrayStreamer.as b/src/as/com/threerings/io/streamers/ArrayStreamer.as index f2984ea53..5d9aa2978 100644 --- a/src/as/com/threerings/io/streamers/ArrayStreamer.as +++ b/src/as/com/threerings/io/streamers/ArrayStreamer.as @@ -7,8 +7,6 @@ import com.threerings.io.ObjectOutputStream; import com.threerings.io.Streamer; import com.threerings.io.TypedArray; -import com.threerings.presents.Log; - /** * A Streamer for Array objects. */ @@ -35,7 +33,7 @@ public class ArrayStreamer extends Streamer _elementType = int; } else { - com.threerings.presents.Log.warning("Other array types are " + + Log.getLog(this).warning("Other array types are " + "currently not handled yet [jname=" + jname + "]."); throw new Error("Unimplemented bit"); } diff --git a/src/as/com/threerings/presents/Log.as b/src/as/com/threerings/presents/Log.as deleted file mode 100644 index 22d8dc058..000000000 --- a/src/as/com/threerings/presents/Log.as +++ /dev/null @@ -1,36 +0,0 @@ -package com.threerings.presents { - -import mx.logging.ILogger; - -import com.threerings.util.LogDaddy; - -public class Log extends LogDaddy -{ - /** The Logger for this package. */ - public static var log :ILogger = getLogger("presents"); - - /** Convenience function. */ - public static function debug (message :String, ... rest) :void - { - log.debug(message, rest); - } - - /** Convenience function. */ - public static function info (message :String, ... rest) :void - { - log.info(message, rest); - } - - /** Convenience function. */ - public static function warning (message :String, ... rest) :void - { - log.warn(message, rest); - } - - /** Convenience function. */ - public static function logStackTrace (err :Error) :void - { - log.warn(err.getStackTrace()); - } -} -} diff --git a/src/as/com/threerings/presents/client/Client.as b/src/as/com/threerings/presents/client/Client.as index 3e6e6b649..193dfad3b 100644 --- a/src/as/com/threerings/presents/client/Client.as +++ b/src/as/com/threerings/presents/client/Client.as @@ -19,13 +19,13 @@ import com.threerings.presents.net.Credentials; import com.threerings.presents.net.PingRequest; import com.threerings.presents.net.PongResponse; -import com.threerings.presents.Log; - public class Client extends EventDispatcher { /** The default port on which the server listens for client connections. */ public static const DEFAULT_SERVER_PORT :int = 47624; + private static const log :Log = Log.getLog(Client); + public function Client (creds :Credentials, stage :Stage) { _creds = creds; @@ -228,7 +228,7 @@ public class Client extends EventDispatcher public function logoff (abortable :Boolean) :Boolean { if (_comm == null) { - Log.warning("Ignoring request to log off: not logged on."); + log.warning("Ignoring request to log off: not logged on."); return true; } @@ -249,7 +249,7 @@ public class Client extends EventDispatcher public function gotBootstrap (data :BootstrapData, omgr :DObjectManager) :void { - Log.debug("Got bootstrap " + data + "."); + log.debug("Got bootstrap " + data + "."); _bstrap = data; _omgr = omgr; @@ -257,7 +257,7 @@ public class Client extends EventDispatcher _invdir.init(omgr, _cloid, this); - Log.debug("TimeBaseService: " + requireService(TimeBaseService)); + log.debug("TimeBaseService: " + requireService(TimeBaseService)); } /** diff --git a/src/as/com/threerings/presents/client/ClientDObjectMgr.as b/src/as/com/threerings/presents/client/ClientDObjectMgr.as index db06072b9..36385f16b 100644 --- a/src/as/com/threerings/presents/client/ClientDObjectMgr.as +++ b/src/as/com/threerings/presents/client/ClientDObjectMgr.as @@ -47,8 +47,6 @@ import com.threerings.presents.net.SubscribeRequest; import com.threerings.presents.net.UnsubscribeRequest; import com.threerings.presents.net.UnsubscribeResponse; -import com.threerings.presents.Log; - /** * The client distributed object manager manages a set of proxy objects * which mirror the distributed objects maintained on the server. @@ -59,6 +57,8 @@ import com.threerings.presents.Log; public class ClientDObjectMgr implements DObjectManager { + private static const log :Log = Log.getLog(ClientDObjectMgr); + /** * Constructs a client distributed object manager. * @@ -149,7 +149,7 @@ public class ClientDObjectMgr long expire = System.currentTimeMillis() + ((Long)_delays.get(dclass)).longValue(); _flushes.put(obj.getOid(), new FlushRecord(obj, expire)); -// Log.info("Flushing " + obj.getOid() + " at " + +// log.info("Flushing " + obj.getOid() + " at " + // new java.util.Date(expire)); return; } @@ -194,14 +194,13 @@ public class ClientDObjectMgr } var obj :Object = _actions.shift(); - Log.debug("processNextAction: " + obj); // do the proper thing depending on the object if (obj is BootstrapNotification) { _client.gotBootstrap(obj.getData(), this); } else if (obj is EventNotification) { var evt :DEvent = obj.getEvent(); -// Log.info("Dispatch event: " + evt); +// log.info("Dispatch event: " + evt); dispatchEvent(evt); } else if (obj is ObjectResponse) { @@ -210,7 +209,7 @@ public class ClientDObjectMgr } else if (obj is UnsubscribeResponse) { var oid :int = obj.getOid(); if (_dead.remove(oid) == null) { - Log.warning("Received unsub ACK from unknown object " + + log.warning("Received unsub ACK from unknown object " + "[oid=" + oid + "]."); } @@ -253,7 +252,7 @@ public class ClientDObjectMgr var target :DObject = (_ocache.get(toid) as DObject); if (target == null) { if (_dead.get(toid) == null) { - Log.warning("Unable to dispatch event on non-proxied " + + log.warning("Unable to dispatch event on non-proxied " + "object [event=" + event + "]."); } return; @@ -266,7 +265,7 @@ public class ClientDObjectMgr // if this is an object destroyed event, we need to remove the // object from our object table if (event is ObjectDestroyedEvent) { -// Log.info("Pitching destroyed object " + +// log.info("Pitching destroyed object " + // "[oid=" + toid + ", class=" + // StringUtil.shortClassName(target) + "]."); _ocache.remove(toid); @@ -278,9 +277,9 @@ public class ClientDObjectMgr } } catch (e :Error) { - Log.warning("Failure processing event [event=" + event + + log.warning("Failure processing event [event=" + event + ", target=" + target + "]."); - Log.logStackTrace(e); + log.logStackTrace(e); } } @@ -300,15 +299,15 @@ public class ClientDObjectMgr // let the penders know that the object is available var req :PendingRequest = (_penders.remove(oid) as PendingRequest); if (req == null) { - Log.warning("Got object, but no one cares?! " + + log.warning("Got object, but no one cares?! " + "[oid=" + oid + ", obj=" + obj + "]."); return; } - Log.debug("Got object: pendReq=" + req); + log.debug("Got object: pendReq=" + req); for (var ii :int = 0; ii < req.targets.length; ii++) { var target :Subscriber = (req.targets[ii] as Subscriber); - Log.debug("Notifying subscriber: " + target); + log.debug("Notifying subscriber: " + target); // add them as a subscriber obj.addSubscriber(target); // and let them know that the object is in @@ -325,7 +324,7 @@ public class ClientDObjectMgr // let the penders know that the object is not available var req :PendingRequest = (_penders.remove(oid) as PendingRequest); if (req == null) { - Log.warning("Failed to get object, but no one cares?! " + + log.warning("Failed to get object, but no one cares?! " + "[oid=" + oid + "]."); return; } @@ -343,7 +342,7 @@ public class ClientDObjectMgr */ protected function doSubscribe (oid :int, target :Subscriber) :void { - // Log.info("doSubscribe: " + oid + ": " + target); + // log.info("doSubscribe: " + oid + ": " + target); // first see if we've already got the object in our table var obj :DObject = (_ocache.get(oid) as DObject); @@ -369,7 +368,7 @@ public class ClientDObjectMgr req = new PendingRequest(oid); req.addTarget(target); _penders.put(oid, req); - // Log.info("Registering pending request [oid=" + oid + "]."); + // log.info("Registering pending request [oid=" + oid + "]."); // and issue a request to get things rolling _comm.postMessage(new SubscribeRequest(oid)); @@ -386,7 +385,7 @@ public class ClientDObjectMgr dobj.removeSubscriber(target); } else { - Log.info("Requested to remove subscriber from " + + log.info("Requested to remove subscriber from " + "non-proxied object [oid=" + oid + ", sub=" + target + "]."); } diff --git a/src/as/com/threerings/presents/client/Communicator.as b/src/as/com/threerings/presents/client/Communicator.as index 5eba62ab1..22569b4a2 100644 --- a/src/as/com/threerings/presents/client/Communicator.as +++ b/src/as/com/threerings/presents/client/Communicator.as @@ -16,8 +16,6 @@ import com.threerings.io.ObjectInputStream; import com.threerings.io.ObjectOutputStream; import com.threerings.io.Translations; -import com.threerings.presents.Log; - import com.threerings.presents.net.AuthRequest; import com.threerings.presents.net.AuthResponse; import com.threerings.presents.net.AuthResponseData; @@ -76,7 +74,8 @@ public class Communicator try { _socket.close(); } catch (err :Error) { - Log.warning("Error closing failed socket [error=" + err + "]."); + Log.getLog(this).warning( + "Error closing failed socket [error=" + err + "]."); } _socket = null; _outStream = null; @@ -140,7 +139,8 @@ public class Communicator var msg :DownstreamMessage = (_inStream.readObject() as DownstreamMessage); if (frameData.bytesAvailable > 0) { - Log.warning("Beans! We didn't fully read a frame, surely there's " + + Log.getLog(this).warning( + "Beans! We didn't fully read a frame, surely there's " + "a bug in some streaming code. " + "[bytesLeftOver=" + frameData.bytesAvailable + "]."); } @@ -180,7 +180,7 @@ public class Communicator */ protected function socketError (event :IOErrorEvent) :void { - Log.warning("socket error: " + event); + Log.getLog(this).warning("socket error: " + event); shutdown(new Error("socket closed unexpectedly.")); } diff --git a/src/as/com/threerings/presents/client/InvocationDecoder.as b/src/as/com/threerings/presents/client/InvocationDecoder.as index d30dc62d6..c07bc499f 100644 --- a/src/as/com/threerings/presents/client/InvocationDecoder.as +++ b/src/as/com/threerings/presents/client/InvocationDecoder.as @@ -21,8 +21,6 @@ package com.threerings.presents.client { -import com.threerings.presents.Log; - /** * Provides the basic functionality used to dispatch invocation * notification events. @@ -47,9 +45,9 @@ public /* abstract */ class InvocationDecoder */ public function dispatchNotification (methodId :int, args :Array) :void { - Log.warning("Requested to dispatch unknown method " + - "[receiver=" + receiver + ", methodId=" + methodId + - ", args=" + args + "]."); + Log.getLog(this).warning("Requested to dispatch unknown method " + + "[receiver=" + receiver + ", methodId=" + methodId + + ", args=" + args + "]."); } } } diff --git a/src/as/com/threerings/presents/client/InvocationDirector.as b/src/as/com/threerings/presents/client/InvocationDirector.as index 10c0bf532..2d8dcb384 100644 --- a/src/as/com/threerings/presents/client/InvocationDirector.as +++ b/src/as/com/threerings/presents/client/InvocationDirector.as @@ -20,16 +20,16 @@ import com.threerings.presents.dobj.SubscriberAdapter; import com.threerings.presents.data.ClientObject; -import com.threerings.presents.Log; - public class InvocationDirector implements EventListener { + private static const log :Log = Log.getLog(InvocationDirector); + public function init (omgr :DObjectManager, cloid :int, client :Client) :void { if (_clobj != null) { - Log.warning("Zoiks, client object around during invmgr init!"); + log.warning("Zoiks, client object around during invmgr init!"); cleanup(); } @@ -84,11 +84,11 @@ public class InvocationDirector var rreg :InvocationRegistration = (_clobj.receivers.get(receiverCode) as InvocationRegistration); if (rreg == null) { - Log.warning("Receiver unregistered for which we have no " + + log.warning("Receiver unregistered for which we have no " + "id to code mapping [code=" + receiverCode + "]."); } else { var odecoder :Object = _receivers.remove(rreg.receiverId); -// Log.info("Cleared receiver " + +// log.info("Cleared receiver " + // StringUtil.shortClassName(odecoder) + // " " + rreg + "."); } @@ -188,7 +188,7 @@ public class InvocationDirector var listener :ListenerMarshaller = (_listeners.remove(reqId) as ListenerMarshaller); if (listener == null) { - Log.warning("Received invocation response for which we have " + + log.warning("Received invocation response for which we have " + "no registered listener [reqId=" + reqId + ", methId=" + methodId + ", args=" + args + "]. " + @@ -198,7 +198,7 @@ public class InvocationDirector return; } -// Log.info("Dispatching invocation response " + +// log.info("Dispatching invocation response " + // "[listener=" + listener + ", methId=" + methodId + // ", args=" + StringUtil.toString(args) + "]."); @@ -206,10 +206,10 @@ public class InvocationDirector try { listener.dispatchResponse(methodId, args); } catch (e :Error) { - Log.warning("Invocation response listener choked " + + log.warning("Invocation response listener choked " + "[listener=" + listener + ", methId=" + methodId + ", args=" + args + "]."); - Log.logStackTrace(e); + log.logStackTrace(e); } // flush expired listeners periodically @@ -230,25 +230,25 @@ public class InvocationDirector var decoder :InvocationDecoder = (_receivers.get(receiverId) as InvocationDecoder); if (decoder == null) { - Log.warning("Received notification for which we have no " + + log.warning("Received notification for which we have no " + "registered receiver [recvId=" + receiverId + ", methodId=" + methodId + ", args=" + args + "]."); return; } -// Log.info("Dispatching invocation notification " + +// log.info("Dispatching invocation notification " + // "[receiver=" + decoder.receiver + ", methodId=" + methodId + // ", args=" + StringUtil.toString(args) + "]."); try { decoder.dispatchNotification(methodId, args); } catch (e :Error) { - Log.warning("Invocation notification receiver choked " + + log.warning("Invocation notification receiver choked " + "[receiver=" + decoder.receiver + ", methId=" + methodId + ", args=" + args + "]."); - Log.logStackTrace(e); + log.logStackTrace(e); } } @@ -323,7 +323,7 @@ public class InvocationDirector internal function gotClientObjectFailed ( oid :int, cause :ObjectAccessError) :void { - Log.warning("Invocation director unable to subscribe to " + + log.warning("Invocation director unable to subscribe to " + "client object [cloid=" + oid + ", cause=" + cause + "]!"); _client.getClientObjectFailed(cause); } diff --git a/src/as/com/threerings/presents/client/TestClient.as b/src/as/com/threerings/presents/client/TestClient.as index 3a2ed80c6..b658f5275 100644 --- a/src/as/com/threerings/presents/client/TestClient.as +++ b/src/as/com/threerings/presents/client/TestClient.as @@ -5,7 +5,6 @@ import flash.utils.describeType; import mx.collections.ArrayCollection; import com.threerings.util.Name; -import com.threerings.presents.Log; import com.threerings.presents.data.TimeBaseMarshaller; import com.threerings.presents.dobj.DSet; import com.threerings.presents.dobj.QSet; @@ -18,6 +17,8 @@ import com.threerings.presents.net.BootstrapData; public class TestClient extends Client { + private static const log :Log = Log.getLog(TestClient); + public function TestClient () { super(new UsernamePasswordCreds(new Name("Ray"), "fork-u-2")); @@ -26,10 +27,10 @@ public class TestClient extends Client var g1 :String = null; var g2 :String = (com.threerings.util.Util.cast(g1, String) as String); - Log.debug("foo: " + (g1 === g2) + ", *" + g2 + "*, "); // + g2.length); + log.debug("foo: " + (g1 === g2) + ", *" + g2 + "*, "); // + g2.length); var ob :Object = "this is a string"; - Log.debug("part of an object: " + ob.substring(1)); + log.debug("part of an object: " + ob.substring(1)); var arr :Array = new Array(); arr[0] = "Florp"; @@ -37,17 +38,17 @@ public class TestClient extends Client arr[2] = "Swissbrat"; for (var key:* in arr) { - Log.debug("a key=" + key + " -> " + arr[key]); + log.debug("a key=" + key + " -> " + arr[key]); } delete arr[1]; arr["1"] = "oinkenheimer"; for (var key:* in arr) { - Log.debug("a key=" + key + " -> " + arr[key]); + log.debug("a key=" + key + " -> " + arr[key]); } - Log.debug("length: " + arr.length); - Log.debug("arr[0]: " + arr[0]); - Log.debug("arr[1]: " + arr[1]); - Log.debug("arr[2]: " + arr[2]); + log.debug("length: " + arr.length); + log.debug("arr[0]: " + arr[0]); + log.debug("arr[1]: " + arr[1]); + log.debug("arr[2]: " + arr[2]); //testFunc(2); var bob :Person = new Person("Bob"); @@ -55,25 +56,25 @@ public class TestClient extends Client var bob2 :Person = new Person("Bob"); bob.callPrintName(jim.printName); - Log.debug("bob == jim: " + (bob == jim)); - Log.debug("bob === jim: " + (bob === jim)); - Log.debug("bob == bob2: " + (bob == bob2)); - Log.debug("bob === bob2: " + (bob === bob2)); - Log.debug("bob == bob: " + (bob == bob)); - Log.debug("bob === bob: " + (bob === bob)); + log.debug("bob == jim: " + (bob == jim)); + log.debug("bob === jim: " + (bob === jim)); + log.debug("bob == bob2: " + (bob == bob2)); + log.debug("bob === bob2: " + (bob === bob2)); + log.debug("bob == bob: " + (bob == bob)); + log.debug("bob === bob: " + (bob === bob)); var list :ArrayCollection = new ArrayCollection(); list.addItem(bob); - Log.debug("jim's indeX: " + list.getItemIndex(jim)); - Log.debug("bob2's indeX: " + list.getItemIndex(bob2)); - Log.debug("function: " + describeType(testFunc).toXMLString()); - Log.debug("func length: " + testFunc.length); - Log.debug("funcToString: " + testFunc); - Log.debug("interfaces: " + describeType(Bint)); + log.debug("jim's indeX: " + list.getItemIndex(jim)); + log.debug("bob2's indeX: " + list.getItemIndex(bob2)); + log.debug("function: " + describeType(testFunc).toXMLString()); + log.debug("func length: " + testFunc.length); + log.debug("funcToString: " + testFunc); + log.debug("interfaces: " + describeType(Bint)); var funcy :Function = function (i :int) :void { - Log.debug("i is " + i); - Log.debug("first list item is " + list[0]); + log.debug("i is " + i); + log.debug("first list item is " + list[0]); } _savedFunc = funcy; @@ -84,8 +85,8 @@ public class TestClient extends Client var a :Object = new OldClass(); var c :Class = OldClass; - Log.debug("instance: " + describeType(a).toXMLString()); - Log.debug("class : " + describeType(Pork).toXMLString()); + log.debug("instance: " + describeType(a).toXMLString()); + log.debug("class : " + describeType(Pork).toXMLString()); */ /* @@ -93,18 +94,18 @@ public class TestClient extends Client var c :Object = 2.4; var d :Object = new HooperClass(this); - Log.debug("1) " + (a as HelperClass)); - Log.debug("2) " + (b as HelperClass)); - Log.debug("3) " + HelperClass(a)); - //Log.debug("4) " + HelperClass(b)); - Log.debug("5) " + (c as int)); - Log.debug("6) " + int(c)); + log.debug("1) " + (a as HelperClass)); + log.debug("2) " + (b as HelperClass)); + log.debug("3) " + HelperClass(a)); + //log.debug("4) " + HelperClass(b)); + log.debug("5) " + (c as int)); + log.debug("6) " + int(c)); - //Log.debug("7) " + (d === a)); + //log.debug("7) " + (d === a)); - Log.debug("8) " + (a as HooperClass)); - Log.debug("9) " + HelperClass(d)); - //Log.debug("X) " + HooperClass(a)); + log.debug("8) " + (a as HooperClass)); + log.debug("9) " + HelperClass(d)); + //log.debug("X) " + HooperClass(a)); var x :HelperClass = HelperClass(d); var y :HelperClass = (d as HelperClass); @@ -113,11 +114,11 @@ public class TestClient extends Client x.hype(); y.hype(); z.hype(); - Log.debug("x === d: " + (x === d)); - Log.debug("y === d: " + (y === d)); - Log.debug("x === y: " + (x === y)); - Log.debug("d === z: " + (d === z)); - Log.debug("y === z: " + (y === z)); + log.debug("x === d: " + (x === d)); + log.debug("y === d: " + (y === d)); + log.debug("x === y: " + (x === y)); + log.debug("d === z: " + (d === z)); + log.debug("y === z: " + (y === z)); */ //var ta :TypedArray = new TypedArray(HooperClass); @@ -142,13 +143,13 @@ public class TestClient extends Client public function testFunc (one :int, two :int = 0, three :int = -1) :void { - Log.debug("this: " + ", args: " + arguments.length + + log.debug("this: " + ", args: " + arguments.length + ": " + arguments); } public function crazyArgs (num :int = 0, str :String = "lol") :void { - Log.debug("crazyArgs " + num + ", " + str); + log.debug("crazyArgs " + num + ", " + str); } prototype var _foo :String; @@ -158,7 +159,6 @@ public class TestClient extends Client } } -import com.threerings.presents.Log; import com.threerings.presents.client.TestClient; interface Aint { @@ -178,7 +178,8 @@ class Person public function printName () :void { - Log.debug("printName called on " + _name + "! (this=" + this + ")"); + Log.getLog(this).debug( + "printName called on " + _name + "! (this=" + this + ")"); } public function callPrintName (funcy :Function) :void @@ -211,7 +212,7 @@ class HelperClass public function hype () :void { - Log.debug("helper hype"); + Log.getLog(this).debug("helper hype"); } protected var _cli :TestClient; @@ -232,7 +233,7 @@ final class HooperClass extends HelperClass public override function hype () :void { - Log.debug("hooper hype"); + Log.getLog(this).debug("hooper hype"); } public function porker () :void diff --git a/src/as/com/threerings/presents/data/InvocationMarshaller.as b/src/as/com/threerings/presents/data/InvocationMarshaller.as index a4e1cda4e..57d96d697 100644 --- a/src/as/com/threerings/presents/data/InvocationMarshaller.as +++ b/src/as/com/threerings/presents/data/InvocationMarshaller.as @@ -27,8 +27,6 @@ import com.threerings.io.ObjectInputStream; import com.threerings.io.ObjectOutputStream; import com.threerings.io.Streamable; -import com.threerings.presents.Log; - import com.threerings.presents.client.Client; import com.threerings.presents.client.ConfirmListener; import com.threerings.presents.client.ResultListener; diff --git a/src/as/com/threerings/presents/data/ListenerMarshaller.as b/src/as/com/threerings/presents/data/ListenerMarshaller.as index d621889d2..63ea61473 100644 --- a/src/as/com/threerings/presents/data/ListenerMarshaller.as +++ b/src/as/com/threerings/presents/data/ListenerMarshaller.as @@ -11,8 +11,6 @@ import com.threerings.presents.client.InvocationListener; import com.threerings.presents.dobj.DObjectManager; import com.threerings.presents.dobj.InvocationResponseEvent; -import com.threerings.presents.Log; - public class ListenerMarshaller implements Streamable, InvocationListener { @@ -55,10 +53,10 @@ public class ListenerMarshaller listener.requestFailed((args[0] as String)); } else { - Log.warning("Requested to dispatch unknown invocation " + - "response [listener=" + listener + - ", methodId=" + methodId + - ", args=" + args + "]."); + Log.getLog(this).warning( + "Requested to dispatch unknown invocation response " + + "[listener=" + listener + ", methodId=" + methodId + + ", args=" + args + "]."); } } diff --git a/src/as/com/threerings/presents/dobj/DEvent.as b/src/as/com/threerings/presents/dobj/DEvent.as index 64292c7e7..1a797efad 100644 --- a/src/as/com/threerings/presents/dobj/DEvent.as +++ b/src/as/com/threerings/presents/dobj/DEvent.as @@ -7,16 +7,12 @@ import com.threerings.io.Streamable; import com.threerings.util.Comparable; import com.threerings.util.StringBuilder; -import com.threerings.presents.Log; - public /* abstract */ class DEvent implements Streamable { public function DEvent (targetOid :int) { _toid = targetOid; - - //Log.debug("unset old = " + UNSET_OLD_ENTRY); } /** @@ -37,7 +33,8 @@ public /* abstract */ class DEvent public function applyToObject (target :DObject) :Boolean { // TODO - Log.warning("DEvent.applyToTarget is really an abstract method."); + Log.getLog(this).warning( + "DEvent.applyToTarget is really an abstract method."); return false; } diff --git a/src/as/com/threerings/presents/dobj/DObject.as b/src/as/com/threerings/presents/dobj/DObject.as index 6666951f2..2e2a83b9d 100644 --- a/src/as/com/threerings/presents/dobj/DObject.as +++ b/src/as/com/threerings/presents/dobj/DObject.as @@ -11,11 +11,11 @@ import com.threerings.io.ObjectInputStream; import com.threerings.io.ObjectOutputStream; import com.threerings.io.Streamable; -import com.threerings.presents.Log; - public class DObject // extends EventDispatcher implements Streamable { + private static const log :Log = Log.getLog(DObject); + public function getOid ():int { return _oid; @@ -61,9 +61,9 @@ public class DObject // extends EventDispatcher _listeners = new ArrayCollection(); } else if (_listeners.contains(listener)) { - com.threerings.presents.Log.warning("Refusing repeat listener registration " + + log.warning("Refusing repeat listener registration " + "[dobj=" + which() + ", list=" + listener + "]."); - com.threerings.presents.Log.logStackTrace(new Error()); + log.logStackTrace(new Error()); return; } _listeners.addItem(listener); @@ -94,9 +94,9 @@ public class DObject // extends EventDispatcher (listener as EventListener).eventReceived(event); } } catch (e :Error) { - com.threerings.presents.Log.warning("Listener choked during notification " + + log.warning("Listener choked during notification " + "[list=" + listener + ", event=" + event + "]."); - com.threerings.presents.Log.logStackTrace(e); + log.logStackTrace(e); } } } @@ -114,7 +114,7 @@ public class DObject // extends EventDispatcher _omgr.postEvent(event); } else { - com.threerings.presents.Log.warning("Unable to post event, object has no omgr " + + log.warning("Unable to post event, object has no omgr " + "[oid=" + getOid() + ", class=" + ClassUtil.getClassName(this) + ", event=" + event + "]."); } diff --git a/src/as/com/threerings/presents/dobj/DSet.as b/src/as/com/threerings/presents/dobj/DSet.as index 8b7c0a286..1e6256307 100644 --- a/src/as/com/threerings/presents/dobj/DSet.as +++ b/src/as/com/threerings/presents/dobj/DSet.as @@ -12,8 +12,6 @@ import com.threerings.io.ObjectOutputStream; import com.threerings.io.Streamable; import com.threerings.io.TypedArray; -import com.threerings.presents.Log; - /** * The distributed set class provides a means by which an unordered set of * objects can be maintained as a distributed object field. Entries can be @@ -122,8 +120,8 @@ public class DSet } } else if (contains(elem)) { - com.threerings.presents.Log.warning("Refusing to add duplicate entry [set=" + this + - ", entry=" + elem + "]."); + Log.getLog(this).warning("Refusing to add duplicate entry " + + "[set=" + this + ", entry=" + elem + "]."); return false; } diff --git a/src/as/com/threerings/presents/dobj/EntryAddedEvent.as b/src/as/com/threerings/presents/dobj/EntryAddedEvent.as index 5ddccdd7b..da5d93924 100644 --- a/src/as/com/threerings/presents/dobj/EntryAddedEvent.as +++ b/src/as/com/threerings/presents/dobj/EntryAddedEvent.as @@ -5,8 +5,6 @@ import com.threerings.io.ObjectOutputStream; import com.threerings.util.StringBuilder; -import com.threerings.presents.Log; - /** * An entry added event is dispatched when an entry is added to a {@link * DSet} attribute of a distributed entry. It can also be constructed to @@ -49,7 +47,8 @@ public class EntryAddedEvent extends NamedEvent { var added :Boolean = target[_name].add(_entry); if (!added) { - Log.warning("Duplicate entry found [event=" + this + "]."); + Log.getLog(this).warning( + "Duplicate entry found [event=" + this + "]."); } return true; } diff --git a/src/as/com/threerings/presents/dobj/EntryRemovedEvent.as b/src/as/com/threerings/presents/dobj/EntryRemovedEvent.as index cdac9b579..bf2fd41d5 100644 --- a/src/as/com/threerings/presents/dobj/EntryRemovedEvent.as +++ b/src/as/com/threerings/presents/dobj/EntryRemovedEvent.as @@ -5,8 +5,6 @@ import com.threerings.io.ObjectOutputStream; import com.threerings.util.StringBuilder; -import com.threerings.presents.Log; - /** * An entry removed event is dispatched when an entry is removed from a * {@link DSet} attribute of a distributed object. It can also be @@ -67,8 +65,8 @@ public class EntryRemovedEvent extends NamedEvent _oldEntry = dset.removeKey(_key); if (_oldEntry == null) { // complain if there was actually nothing there - Log.warning("No matching entry to remove [key=" + _key + - ", set=" + dset + "]."); + Log.getLog(this).warning("No matching entry to remove " + + "[key=" + _key + ", set=" + dset + "]."); return false; } } diff --git a/src/as/com/threerings/presents/dobj/EntryUpdatedEvent.as b/src/as/com/threerings/presents/dobj/EntryUpdatedEvent.as index 6f6791015..ce1dc152a 100644 --- a/src/as/com/threerings/presents/dobj/EntryUpdatedEvent.as +++ b/src/as/com/threerings/presents/dobj/EntryUpdatedEvent.as @@ -5,8 +5,6 @@ import com.threerings.io.ObjectOutputStream; import com.threerings.util.StringBuilder; -import com.threerings.presents.Log; - /** * An entry updated event is dispatched when an entry of a {@link DSet} is * updated. It can also be constructed to request the update of an entry @@ -67,8 +65,8 @@ public class EntryUpdatedEvent extends NamedEvent _oldEntry = dset.update(_entry); if (_oldEntry == null) { // complain if we didn't update anything - Log.warning("No matching entry to update [entry=" + this + - ", set=" + dset + "]."); + Log.getLog(this).warning("No matching entry to update " + + "[entry=" + this + ", set=" + dset + "]."); return false; } } diff --git a/src/as/com/threerings/presents/dobj/OidList.as b/src/as/com/threerings/presents/dobj/OidList.as index ea0dce651..5efe54d27 100644 --- a/src/as/com/threerings/presents/dobj/OidList.as +++ b/src/as/com/threerings/presents/dobj/OidList.as @@ -8,8 +8,6 @@ import com.threerings.io.TypedArray; import com.threerings.util.StringBuilder; -import com.threerings.presents.Log; - /** * An oid list is used to store lists of object ids. The list will not * allow duplicate ids. This class is not synchronized, with the @@ -102,7 +100,7 @@ public class OidList // documentation inherited from interface Streamable public function writeObject (out :ObjectOutputStream) :void { - Log.warning("TODO: Not implemented: " + this); + Log.getLog(this).warning("TODO: Not implemented: " + this); } // documentation inherited from interface Streamable diff --git a/src/as/com/threerings/presents/dobj/SubscriberAdapter.as b/src/as/com/threerings/presents/dobj/SubscriberAdapter.as index 0b0cf2cff..dd2d37b17 100644 --- a/src/as/com/threerings/presents/dobj/SubscriberAdapter.as +++ b/src/as/com/threerings/presents/dobj/SubscriberAdapter.as @@ -1,7 +1,5 @@ package com.threerings.presents.dobj { -import com.threerings.presents.Log; - public class SubscriberAdapter implements Subscriber { @@ -14,7 +12,6 @@ public class SubscriberAdapter // documentation inherited from interface Subscriber public function objectAvailable (obj :DObject) :void { - Log.debug("calling success function: " + _success); _success(obj); } diff --git a/src/as/com/threerings/presents/net/BootstrapData.as b/src/as/com/threerings/presents/net/BootstrapData.as index 95a492f31..af73cba40 100644 --- a/src/as/com/threerings/presents/net/BootstrapData.as +++ b/src/as/com/threerings/presents/net/BootstrapData.as @@ -6,8 +6,6 @@ import com.threerings.io.Streamable; import com.threerings.util.StreamableArrayList; -import com.threerings.presents.Log; - /** * A BoostrapData object is communicated back to the client * after authentication has succeeded and after the server is fully @@ -26,7 +24,8 @@ public class BootstrapData // documentation inherited from interface Streamable public function writeObject (out :ObjectOutputStream) :void { - com.threerings.presents.Log.warning("This is client code: BootstrapData shouldn't be written"); + Log.getLog(this).warning( + "This is client code: BootstrapData shouldn't be written"); } // documentation inherited from interface Streamable diff --git a/src/as/com/threerings/presents/net/DownstreamMessage.as b/src/as/com/threerings/presents/net/DownstreamMessage.as index 8650d42ef..aa0e890cb 100644 --- a/src/as/com/threerings/presents/net/DownstreamMessage.as +++ b/src/as/com/threerings/presents/net/DownstreamMessage.as @@ -4,8 +4,6 @@ import com.threerings.io.ObjectInputStream; import com.threerings.io.ObjectOutputStream; import com.threerings.io.Streamable; -import com.threerings.presents.Log; - public /* abstract */ class DownstreamMessage implements Streamable { @@ -17,8 +15,8 @@ public /* abstract */ class DownstreamMessage // documentation inherited from interface Streamable public function writeObject (out :ObjectOutputStream) :void { - Log.warning("This is client code: Downstream messages shouldn't " + - "be written"); + Log.getLog(this).warning( + "This is client code: Downstream messages shouldn't be written"); //out.writeShort(messageId); } diff --git a/src/as/com/threerings/presents/net/UpstreamMessage.as b/src/as/com/threerings/presents/net/UpstreamMessage.as index 3d9530cdc..a3d75ef01 100644 --- a/src/as/com/threerings/presents/net/UpstreamMessage.as +++ b/src/as/com/threerings/presents/net/UpstreamMessage.as @@ -6,8 +6,6 @@ import com.threerings.io.ObjectOutputStream; import com.threerings.util.JavaConstants; -import com.threerings.presents.Log; - public /* abstract */ class UpstreamMessage implements Streamable { @@ -35,7 +33,8 @@ public /* abstract */ class UpstreamMessage // documentation inherited from interface Streamable public function readObject (ins :ObjectInputStream) :void { - Log.warning("This is client code: Upstream messages shouldn't be read"); + Log.getLog(this).warning( + "This is client code: Upstream messages shouldn't be read"); //messageId = ins.readShort(); } diff --git a/src/as/com/threerings/util/Log.as b/src/as/com/threerings/util/Log.as deleted file mode 100644 index f226fca6a..000000000 --- a/src/as/com/threerings/util/Log.as +++ /dev/null @@ -1,34 +0,0 @@ -package com.threerings.util { - -import mx.logging.ILogger; - -public class Log extends LogDaddy -{ - /** The Logger for this package. */ - public static var log :ILogger = getLogger("util"); - - /** Convenience function. */ - public static function debug (message :String, ... rest) :void - { - log.debug(message, rest); - } - - /** Convenience function. */ - public static function info (message :String, ... rest) :void - { - log.info(message, rest); - } - - /** Convenience function. */ - public static function warning (message :String, ... rest) :void - { - log.warn(message, rest); - } - - /** Convenience function. */ - public static function logStackTrace (err :Error) :void - { - log.warn(err.getStackTrace()); - } -} -} diff --git a/src/as/com/threerings/util/LogDaddy.as b/src/as/com/threerings/util/LogDaddy.as deleted file mode 100644 index c062ceea3..000000000 --- a/src/as/com/threerings/util/LogDaddy.as +++ /dev/null @@ -1,40 +0,0 @@ -package com.threerings.util { - -import mx.logging.ILogger; -import mx.logging.LogEventLevel; - -import mx.logging.targets.TraceTarget; - -/** - * Jesus Horseradish Christ. I wanted to just call this class Log, but - * other classes that don't even import it are getting confused between - * this and the subclasses with the same name. It's possible that this - * is some wacky compiler bug. - */ -public class LogDaddy -{ - /** - * Retrieve the Logger for the specified package name, and ensure - * that our log target is set up. - */ - public static function getLogger (pkg :String) :ILogger - { - return mx.logging.Log.getLogger(pkg); - } - - /** - * Our static (class) initializer. - */ - private static function staticInit () :void - { - var targ :TraceTarget = new TraceTarget(); - targ.filters = ["*"]; - targ.level = LogEventLevel.DEBUG; - mx.logging.Log.addTarget(targ); - // we could do some stuff here: set up different targets - // with different log levels... - } - - staticInit(); // call our static initializer -} -} diff --git a/src/as/com/threerings/util/MessageBundle.as b/src/as/com/threerings/util/MessageBundle.as index fa77545bf..d975096f7 100644 --- a/src/as/com/threerings/util/MessageBundle.as +++ b/src/as/com/threerings/util/MessageBundle.as @@ -86,7 +86,7 @@ public class MessageBundle } if (reportMissing) { - Log.warning("Missing translation message " + + Log.getLog(this).warning("Missing translation message " + "[bundle=" + _path + ", key=" + key + "]."); } @@ -146,7 +146,7 @@ public class MessageBundle // if the base key is not found, look to see if we should try to // convert our first argument to an Integer and try again if (msg == null) { - Log.warning("Missing translation message " + + Log.getLog(this).warning("Missing translation message " + "[bundle=" + _path + ", key=" + key + "]."); } diff --git a/src/as/com/threerings/util/MessageManager.as b/src/as/com/threerings/util/MessageManager.as index 239aa850f..2d427514b 100644 --- a/src/as/com/threerings/util/MessageManager.as +++ b/src/as/com/threerings/util/MessageManager.as @@ -137,8 +137,8 @@ public class MessageManager rbundle = ResourceBundle.getResourceBundle(fqpath); // } } catch (mre :Error) { - Log.warning("Unable to resolve resource bundle " + - "[path=" + fqpath + "]."); + Log.getLog(this).warning("Unable to resolve resource bundle " + + "[path=" + fqpath + "]."); } // if the resource bundle contains a special resource, we'll @@ -157,8 +157,8 @@ public class MessageManager // nothing to worry about } catch (t :Error) { - Log.warning("Failure instantiating custom message bundle " + - "[mbclass=" + mbclass + ", error=" + t + "]."); + Log.getLog(this).warning("Failure instantiating custom message" + + " bundle [mbclass=" + mbclass + ", error=" + t + "]."); } } diff --git a/src/as/com/threerings/util/ObserverList.as b/src/as/com/threerings/util/ObserverList.as index 715338cac..a882762e9 100644 --- a/src/as/com/threerings/util/ObserverList.as +++ b/src/as/com/threerings/util/ObserverList.as @@ -64,7 +64,9 @@ public class ObserverList remove(list[ii]); } } catch (err :Error) { - Log.warning("ObserverOp choked during notification."); + var log :Log = Log.getLog(this); + log.warning("ObserverOp choked during notification."); + log.logStackTrace(err); } } }