reactor-core/src/main/java/reactor/core/publisher/Mono.java
public final Mono<T> log(@Nullable String category,
			Level level,
			boolean showOperatorLine,
			SignalType... options) {
		SignalLogger<T> log = new SignalLogger<>(this, category, level,
				showOperatorLine, options);

		if (this instanceof Fuseable) {
			return onAssembly(new MonoLogFuseable<>(this, log));
		}
		return onAssembly(new MonoLog<>(this, log));
	}
public final Mono<T> log(@Nullable String category,
			Level level,
			boolean showOperatorLine,
			SignalType... options) {
		SignalLogger<T> log = new SignalLogger<>(this, category, level,
				showOperatorLine, options);

		if (this instanceof Fuseable) {
			return onAssembly(new MonoLogFuseable<>(this, log));
		}
		return onAssembly(new MonoLog<>(this, log));
	}
public final Mono < T > log ( @ Nullable String category , Level level , boolean showOperatorLine , SignalType ... options ) { SignalLogger < T > log = new SignalLogger <> ( this , category , level , showOperatorLine , options ) ; if ( this instanceof Fuseable ) { return onAssembly ( new MonoLogFuseable <> ( this , log ) ) ; } return onAssembly ( new MonoLog <> ( this , log ) ) ; }
Observe Reactive Streams signals matching the passed filter {@code options} and
use {@link Logger} support to
handle trace
implementation. Default will
use the passed {@link Level} and java.util.logging. If SLF4J is available, it will be used instead.

Options allow fine grained filtering of the traced signal, for instance to only capture onNext and onError:
<pre>
mono.log("category", Level.INFO, SignalType.ON_NEXT, SignalType.ON_ERROR)
</pre>
<p>
<img class="marble" src="doc-files/marbles/logForMono.svg" alt="">

@param category to be mapped into logger configuration (e.g. org.springframework
.reactor). If category ends with "." like "reactor.", a generated operator
suffix will complete, e.g. "reactor.Mono.Map".
@param level the {@link Level} to enforce for this tracing Mono (only FINEST, FINE,
INFO, WARNING and SEVERE are taken into account)
@param showOperatorLine capture the current stack to display operator
class/line number.
@param options a vararg {@link SignalType} option to filter log messages

@return a new unaltered {@link Mono}
Observe Reactive Streams signals matching the passed filter { @code options } and use { @link Logger } support to handle trace implementation . Default will use the passed { @link Level } and java . util . logging . If SLF4J is available it will be used instead .