THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
No Format |
---|
2009-06-29 13:35:10,1234 +0100 MESSAGE [ vh(/)/ex(amq.direct)/qu(testQueue)/bd(routingKey) ] BDN-1001 : Create |
Interfaces
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
/** * LogActor the entity that is stored as in a ThreadLocal and used to perform logging. * * The actor is responsible for formatting its display name for the log entry. * * The actor performs the requested logging. */ public interface LogActor { /** * Logs the specified LogMessage about the LogSubject * * Currently logging has a global setting however this will later be revised and * as such the LogActor will need to take into consideration any new configuration * as a means of enabling the logging of LogActors and LogSubjects. * * @param actor The actor that is requesting the logging * @param message The message to log */ public void message(LogSubject subject, LogMessage message); } |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
/** * Each LogSubject that wishes to be logged will implement this to provide their * own display representation. * * The display representation is retrieved through the toString() method. */ public interface LogSubject { /** * Logs the message as provided by String.valueOf(message). * * @returns String the display representation of this LogSubject */ public String toString(); } |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
/** * The RootMessageLogger is used by the LogActors to query if * logging is enabled for the requested message and to provide the actual * message that should be logged. */ public interface RootMessageLogger { /** * Determine if the LogSubject and the LogActor should be * generating log messages. * * @param logSubject The subject of this log request * @param logActor The actor requesting the logging * @return boolean true if the message should be logged. */ boolean isMessageEnabled(LogActor actor, LogSubject subject); /** * Log the raw message to the configured logger. * * @param message The message to log * @param throwable Optional Throwable that should provide stact trace */ void rawMessage(String message, Throwable throwable); } |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
/** * A RawMessage Logger takes the given String and any Throwable and writes the * data to its resource. */ public interface RawMessageLogger { /** * Log the message and formatted stack trace for any Throwable. * * @param message String to log. * @param throwable Throwable for which to provide stack trace. */ public void rawMessage(String message, Throwable throwable); } |
Logging Usage
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
pubic class Connection ... LogActor amqpActor = // retrieved from ThreadLocal. //_channelSubject is an instance LogSubject that knows how to represent this Connection amqpActor.logMessage(_connectionSubject, LogMessages.CHANNEL_CREATE(this)); ... |
...
No Format |
---|
2009-06-29 13:35:10,1234 +0100 MESSAGE [con:1(guest@127.0.0.1/)] [ch:2] ChM-1001 : Channel Created |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
... amqpActor.logMessage(_subsriptionSubject, LogMessages.SUBSCRIPTION_CREATE(this)); ... |
...