Repository: logging-log4j2 Updated Branches: refs/heads/master 3295f1138 -> 7030aaec7
Move flow message types with other messages in the message package and have the message factory create these like other message to allow for customization. The flow message implementation are still private for now. TBD is how customize something as simple as the works "exit" and "entry". Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/7030aaec Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/7030aaec Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/7030aaec Branch: refs/heads/master Commit: 7030aaec7aae64d1b8fce4a79717c5c0c03c227f Parents: 3295f11 Author: ggregory <[email protected]> Authored: Fri Feb 12 23:09:27 2016 -0800 Committer: ggregory <[email protected]> Committed: Fri Feb 12 23:09:27 2016 -0800 ---------------------------------------------------------------------- .../log4j/message/AbstractMessageFactory.java | 143 +++++++++++++++++++ .../logging/log4j/message/MessageFactory.java | 6 + .../logging/log4j/spi/AbstractLogger.java | 136 ++---------------- 3 files changed, 159 insertions(+), 126 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7030aaec/log4j-api/src/main/java/org/apache/logging/log4j/message/AbstractMessageFactory.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/AbstractMessageFactory.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/AbstractMessageFactory.java index 0db9b50..e1610a6 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/AbstractMessageFactory.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/AbstractMessageFactory.java @@ -26,11 +26,154 @@ import java.io.Serializable; */ public abstract class AbstractMessageFactory implements MessageFactory, Serializable { + private static class AbstactFlowMessage implements FlowMessage { + + private static final long serialVersionUID = 1L; + private final Message message; + private final String text; + + AbstactFlowMessage(final String text, final Message message) { + this.message = message; + this.text = text; + } + + @Override + public String getFormattedMessage() { + if (message != null) { + return text + " " + message.getFormattedMessage(); + } + return text; + } + + @Override + public String getFormat() { + if (message != null) { + return text + ": " + message.getFormat(); + } + return text; + } + + @Override + public Object[] getParameters() { + if (message != null) { + return message.getParameters(); + } + return null; + } + + @Override + public Throwable getThrowable() { + if (message != null) { + return message.getThrowable(); + } + return null; + } + + @Override + public Message getMessage() { + return message; + } + + @Override + public String getText() { + return text; + } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append(getClass().getSimpleName()); + builder.append(" [text="); + builder.append(text); + builder.append(", message="); + builder.append(message); + builder.append("]"); + return builder.toString(); + } + } + + private static final class SimpleEntryMessage extends AbstactFlowMessage implements EntryMessage { + + private static final String DEAULT_TEXT = "entry"; + private static final long serialVersionUID = 1L; + + SimpleEntryMessage(final Message message) { + super(DEAULT_TEXT, message); + } + + } + + private static final class SimpleExitMessage extends AbstactFlowMessage implements ExitMessage { + + private static final String DEAULT_TEXT = "exit"; + private static final long serialVersionUID = 1L; + + private final Object result; + private final boolean isVoid; + + SimpleExitMessage(final Object result, final EntryMessage message) { + super(DEAULT_TEXT, message.getMessage()); + this.result = result; + isVoid = false; + } + + SimpleExitMessage(final Object result, final Message message) { + super(DEAULT_TEXT, message); + this.result = result; + isVoid = false; + } + + SimpleExitMessage(final Message message) { + super(DEAULT_TEXT, message); + this.result = null; + isVoid = true; + } + + @Override + public String getFormattedMessage() { + final String formattedMessage = super.getFormattedMessage(); + if (isVoid) { + return formattedMessage; + } + return formattedMessage + ": " + result; + } + } + private static final long serialVersionUID = 1L; /* * (non-Javadoc) * + * @see org.apache.logging.log4j.message.MessageFactory#newEntryMessage(org.apache.logging.log4j.message.Message) + */ + @Override + public EntryMessage newEntryMessage(Message message) { + return new SimpleEntryMessage(message); + } + + /* + * (non-Javadoc) + * + * @see org.apache.logging.log4j.message.MessageFactory#newEntryMessage(java.lang.Object, org.apache.logging.log4j.message.EntryMessage) + */ + @Override + public ExitMessage newExitMessage(Object object, EntryMessage message) { + return new SimpleExitMessage(object, message); + } + + /* + * (non-Javadoc) + * + * @see org.apache.logging.log4j.message.MessageFactory#newEntryMessage(java.lang.Object, org.apache.logging.log4j.message.Message) + */ + @Override + public ExitMessage newExitMessage(Object object, Message message) { + return new SimpleExitMessage(object, message); + } + + /* + * (non-Javadoc) + * * @see org.apache.logging.log4j.message.MessageFactory#newMessage(java.lang.Object) */ @Override http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7030aaec/log4j-api/src/main/java/org/apache/logging/log4j/message/MessageFactory.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/MessageFactory.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/MessageFactory.java index 009d5a6..ec7fd23 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/MessageFactory.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/MessageFactory.java @@ -54,4 +54,10 @@ public interface MessageFactory { * @see StringFormatterMessageFactory */ Message newMessage(String message, Object... params); + + EntryMessage newEntryMessage(Message message); + + ExitMessage newExitMessage(Object object, Message message); + + ExitMessage newExitMessage(Object object, EntryMessage message); } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7030aaec/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java index 7acb4f7..6b6bd66 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java @@ -22,8 +22,6 @@ import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.MarkerManager; import org.apache.logging.log4j.message.EntryMessage; -import org.apache.logging.log4j.message.ExitMessage; -import org.apache.logging.log4j.message.FlowMessage; import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.message.MessageFactory; import org.apache.logging.log4j.message.ParameterizedMessageFactory; @@ -350,9 +348,9 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { * @param msgSupplier The Supplier of the Message. */ protected EntryMessage enter(final String fqcn, final MessageSupplier msgSupplier) { - SimpleEntryMessage message = null; + EntryMessage message = null; if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) { - logMessage(fqcn, Level.TRACE, ENTRY_MARKER, message = new SimpleEntryMessage(msgSupplier.get()), null); + logMessage(fqcn, Level.TRACE, ENTRY_MARKER, message = messageFactory.newEntryMessage(msgSupplier.get()), null); } return message; } @@ -387,14 +385,14 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { final int count = params == null ? 0 : params.length; if (count == 0) { if (Strings.isEmpty(format)) { - return new SimpleEntryMessage(null); + return messageFactory.newEntryMessage(null); } - return new SimpleEntryMessage(messageFactory.newMessage(format)); + return messageFactory.newEntryMessage(messageFactory.newMessage(format)); } final StringBuilder sb = new StringBuilder(); if (format != null) { sb.append(format); - return new SimpleEntryMessage(messageFactory.newMessage(sb.toString(), params)); + return messageFactory.newEntryMessage(messageFactory.newMessage(sb.toString(), params)); } sb.append("params("); for (int i = 0; i < count; i++) { @@ -405,7 +403,7 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { } } sb.append(')'); - return new SimpleEntryMessage(messageFactory.newMessage(sb.toString())); + return messageFactory.newEntryMessage(messageFactory.newMessage(sb.toString())); } protected EntryMessage entryMsg(final String format, final MessageSupplier... paramSuppliers) { @@ -1367,7 +1365,7 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { logMessage(FQCN, Level.TRACE, EXIT_MARKER, new MessageSupplier() { @Override public Message get() { - return new SimpleExitMessage(result, messageSupplier.get()); + return messageFactory.newExitMessage(result, messageSupplier.get()); }; }, null); } @@ -1380,7 +1378,7 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { logMessage(FQCN, Level.TRACE, EXIT_MARKER, new MessageSupplier() { @Override public Message get() { - return new SimpleExitMessage(result, messageSupplier.get()); + return messageFactory.newExitMessage(result, messageSupplier.get()); }; }, null); } @@ -1393,7 +1391,7 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { logMessage(FQCN, Level.TRACE, EXIT_MARKER, new MessageSupplier() { @Override public Message get() { - return new SimpleExitMessage(result, message); + return messageFactory.newExitMessage(result, message); }; }, null); } @@ -1406,7 +1404,7 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { logMessage(FQCN, Level.TRACE, EXIT_MARKER, new MessageSupplier() { @Override public Message get() { - return new SimpleExitMessage(result, message); + return messageFactory.newExitMessage(result, message); }; }, null); } @@ -1532,118 +1530,4 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { public void warn(final MessageSupplier msgSupplier, final Throwable t) { logIfEnabled(FQCN, Level.WARN, null, msgSupplier, t); } - - private static class AbstactFlowMessage implements FlowMessage { - - private static final long serialVersionUID = 1L; - private final Message message; - private final String text; - - AbstactFlowMessage(final String text, final Message message) { - this.message = message; - this.text = text; - } - - @Override - public String getFormattedMessage() { - if (message != null) { - return text + " " + message.getFormattedMessage(); - } - return text; - } - - @Override - public String getFormat() { - if (message != null) { - return text + ": " + message.getFormat(); - } - return text; - } - - @Override - public Object[] getParameters() { - if (message != null) { - return message.getParameters(); - } - return null; - } - - @Override - public Throwable getThrowable() { - if (message != null) { - return message.getThrowable(); - } - return null; - } - - @Override - public Message getMessage() { - return message; - } - - @Override - public String getText() { - return text; - } - - @Override - public String toString() { - final StringBuilder builder = new StringBuilder(); - builder.append(getClass().getSimpleName()); - builder.append(" [text="); - builder.append(text); - builder.append(", message="); - builder.append(message); - builder.append("]"); - return builder.toString(); - } - } - - private static final class SimpleEntryMessage extends AbstactFlowMessage implements EntryMessage { - - private static final String DEAULT_TEXT = "entry"; - private static final long serialVersionUID = 1L; - - SimpleEntryMessage(final Message message) { - super(DEAULT_TEXT, message); - } - - } - - private static final class SimpleExitMessage extends AbstactFlowMessage implements ExitMessage { - - private static final String DEAULT_TEXT = "exit"; - private static final long serialVersionUID = 1L; - - private final Object result; - private final boolean isVoid; - - SimpleExitMessage(final Object result, final EntryMessage message) { - super(DEAULT_TEXT, message.getMessage()); - this.result = result; - isVoid = false; - } - - SimpleExitMessage(final Object result, final Message message) { - super(DEAULT_TEXT, message); - this.result = result; - isVoid = false; - } - - SimpleExitMessage(final Message message) { - super(DEAULT_TEXT, message); - this.result = null; - isVoid = true; - } - - @Override - public String getFormattedMessage() { - final String formattedMessage = super.getFormattedMessage(); - if (isVoid) { - return formattedMessage; - } - return formattedMessage + ": " + result; - } - - } }
