001package org.slf4j.spi;
002
003import java.util.function.Supplier;
004
005import org.slf4j.Marker;
006
007/**
008 * A fluent API for creating logging events.
009 * 
010 * @author Ceki Gülcü
011 * @since 2.0.0
012 *
013 */
014public interface LoggingEventBuilder {
015
016
017        LoggingEventBuilder setCause(Throwable cause);
018        
019        LoggingEventBuilder addMarker(Marker marker);
020        LoggingEventBuilder addArgument(Object p);
021        LoggingEventBuilder addArgument(Supplier<Object> objectSupplier);
022        LoggingEventBuilder addKeyValue(String key, Object value);
023        LoggingEventBuilder addKeyValue(String key, Supplier<Object> value);
024        
025        void log(String message);
026
027        void log(String message, Object arg);
028        void log(String message, Object arg0, Object arg1);
029        void log(String message, Object... args);
030        
031        void log(Supplier<String> messageSupplier);
032
033        
034        
035}