### Question:
FormattedLogProvider extends AbstractLogProvider<FormattedLog> { public static FormattedLogProvider toOutputStream( OutputStream out ) { return new Builder().toOutputStream( out ); } FormattedLogProvider( Supplier<PrintWriter> writerSupplier,
                          ZoneId zoneId, boolean renderContext,
                          Map<String, Level> levels, Level defaultLevel, boolean autoFlush ); static Builder withoutRenderingContext(); static Builder withUTCTimeZone(); static Builder withZoneId( ZoneId zoneId ); @Deprecated static Builder withTimeZone( TimeZone timeZone ); static Builder withDefaultLogLevel( Level level ); static Builder withoutAutoFlush(); static FormattedLogProvider toOutputStream( OutputStream out ); static FormattedLogProvider toOutputStream( Supplier<OutputStream> outSupplier ); static FormattedLogProvider toWriter( Writer writer ); static FormattedLogProvider toPrintWriter( PrintWriter writer ); static FormattedLogProvider toPrintWriter( Supplier<PrintWriter> writerSupplier );  }### Answer:
@Test void shouldReturnSameLoggerForSameClass() { FormattedLogProvider logProvider = FormattedLogProvider.toOutputStream( new ByteArrayOutputStream() ); FormattedLog log = logProvider.getLog( getClass() ); assertThat( logProvider.getLog( FormattedLogProviderTest.class ), sameInstance( log ) ); }
@Test void shouldReturnSameLoggerForSameContext() { FormattedLogProvider logProvider = FormattedLogProvider.toOutputStream( new ByteArrayOutputStream() ); FormattedLog log = logProvider.getLog( "test context" ); assertThat( logProvider.getLog( "test context" ), sameInstance( log ) ); }