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    LoggingEventBuilder setCause(Throwable cause);
017
018    LoggingEventBuilder addMarker(Marker marker);
019
020    LoggingEventBuilder addArgument(Object p);
021
022    LoggingEventBuilder addArgument(Supplier<?> objectSupplier);
023
024    LoggingEventBuilder addKeyValue(String key, Object value);
025
026    LoggingEventBuilder addKeyValue(String key, Supplier<Object> value);
027
028    void log(String message);
029
030    void log(String message, Object arg);
031
032    void log(String message, Object arg0, Object arg1);
033
034    void log(String message, Object... args);
035
036    void log(Supplier<String> messageSupplier);
037
038}