On Sep 16, 2011, at 4:41 PM, Joern Huxhorn wrote:

> But what about tracing messages? Those could have a TraceMessageType 
> (ENTERING, EXITING, THROWING).
> Shouldn't we add that to the Message interface, too, and just return null in 
> case of every other Message implementation?
> 
> Sorry about my sarcasm (and yes, that's only sarcasm. I'm not suggesting to 
> add this to the Message interface ;)) but I just don't see the reason and 
> rationale for those methods.

It may be sarcasm but I really could see logger.entry being implemented as

    public void entry(Object... params) {
        if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) {
            log(ENTRY_MARKER, getFQCN(), Level.TRACE, new EntryMessage(params), 
null);
        }
    }

public class EntryMessage extends SimpleMessage {
    public EntryMessage(Object[] params) {
        super(getMsg(params));
    }

    private String getMsg(Object[] params) {
        if (params == null) {
            return " entry";
        }
        StringBuilder sb = new StringBuilder(" entry parms(");
        int i = 0;
        for (Object parm : params) {
            if (parm != null) {
                sb.append(parm.toString());
            } else {
                sb.append("null");
            }
            if (++i < params.length) {
                sb.append(", ");
            }
        }
        sb.append(")");
        return sb.toString();
    }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to