package org.smartly; import org.smartly.commons.logging.Level; import org.smartly.commons.logging.Logger; import org.smartly.commons.logging.util.LoggingUtils; /** * Logger wrapper that check for "silent" option. * <p/> * SILENT mode does not log info or warnings, but only errors. * Errors are always logged. */ public class SmartlyLogger { private final boolean _silent; private final Object _sender; public SmartlyLogger(final boolean silent) { _silent = silent; _sender = null; } public SmartlyLogger(final Object sender, final boolean silent) { _silent = silent; _sender = sender; } public void debug(final String message) { this.debug(null != _sender ? _sender : this, message); } public void info(final String message) { this.info(null != _sender ? _sender : this, message); } public void warning(final String message) { this.warning(null != _sender ? _sender : this, message); } public void warning(final Throwable error) { this.warning(null != _sender ? _sender : this, error); } public void severe(final String message) { this.severe(null != _sender ? _sender : this, message); } public void severe(final Throwable error) { this.severe(null != _sender ? _sender : this, error); } public void severe(final String message, final Throwable error) { this.severe(null != _sender ? _sender : this, message, error); } public void debug(final Object sender, final String message) { if (!_silent) { this.getLogger(sender).debug(message); } } public void info(final Object sender, final String message) { if (!_silent) { this.getLogger(sender).info(message); } } public void warning(final Object sender, final String message) { if (!_silent) { this.getLogger(sender).warning(message); } } public void warning(final Object sender, final Throwable error) { if (!_silent) { this.getLogger(sender).log(Level.WARNING, null, error); } } public void severe(final Object sender, final String message) { this.getLogger(sender).log(Level.SEVERE, message); } public void severe(final Object sender, final Throwable error) { this.getLogger(sender).log(Level.SEVERE, null, error); } public void severe(final Object sender, final String message, final Throwable error) { this.getLogger(sender).log(Level.SEVERE, message, error); } // ------------------------------------------------------------------------ // p r i v a t e // ------------------------------------------------------------------------ private Logger getLogger(final Object instance) { return LoggingUtils.getLogger(instance); } }