package edu.stanford.nlp.util.logging; import edu.stanford.nlp.util.logging.Redwood.RedwoodChannels; /** * Indicates that a class supports "pretty logging". Pretty logging is a type of * pretty-printing that uses the Redwood logging system to structure itself. * * When pretty logging the contents of your object, you should check to see if * each object (call it <code>obj</code>) is dispatchable with * <code>PrettyLogger.dispatchable(obj)</code> if you don't know their type. If * true, you should call <code>channels.prettyLog(obj)</code> to pretty log it. * Otherwise, use its <code>toString()</code> method. * * @see PrettyLogger * @author David McClosky * */ public interface PrettyLoggable { /** * Pretty logs the current object to specific Redwood channels. * * @param channels * the channels which should be logged to -- all logging calls should * use logging methods on the channels (e.g. channels.log(), etc.) * @param description * The description of the object. It will potentially identify the * object's functional role or (failing that) its class. This is * typically used as a track name surrounding the contents of this * object. */ void prettyLog(RedwoodChannels channels, String description); }