/** * Create log service with different user and internal log providers. * User logs will be duplicated to internal logs as well. * Should be used when user and internal are backed by different log providers. * @param userLogProvider user log provider * @param internalLogProvider internal log provider */ public SimpleLogService( LogProvider userLogProvider, LogProvider internalLogProvider ) { this.userLogProvider = new DuplicatingLogProvider( userLogProvider, internalLogProvider ); this.internalLogProvider = internalLogProvider; }
@Test void shouldReturnSameLoggerForSameClass() { // Given DuplicatingLogProvider logProvider = new DuplicatingLogProvider(); // Then DuplicatingLog log = logProvider.getLog( getClass() ); assertThat( logProvider.getLog( DuplicatingLogProviderTest.class ), sameInstance( log ) ); }
@Test void shouldReturnSameLoggerForSameContext() { // Given DuplicatingLogProvider logProvider = new DuplicatingLogProvider(); // Then DuplicatingLog log = logProvider.getLog( "test context" ); assertThat( logProvider.getLog( "test context" ), sameInstance( log ) ); }
@Test void shouldRemoveLogProviderFromDuplication() { // Given AssertableLogProvider logProvider1 = new AssertableLogProvider(); AssertableLogProvider logProvider2 = new AssertableLogProvider(); DuplicatingLogProvider logProvider = new DuplicatingLogProvider( logProvider1, logProvider2 ); // When Log log = logProvider.getLog( getClass() ); log.info( "When the going gets weird" ); assertTrue( logProvider.remove( logProvider1 ) ); log.info( "The weird turn pro" ); // Then logProvider1.assertExactly( AssertableLogProvider.inLog( getClass() ).info( "When the going gets weird" ) ); logProvider2.assertExactly( AssertableLogProvider.inLog( getClass() ).info( "When the going gets weird" ), AssertableLogProvider.inLog( getClass() ).info( "The weird turn pro" ) ); } }
/** * Create log service with different user and internal log providers. * User logs will be duplicated to internal logs as well. * Should be used when user and internal are backed by different log providers. * @param userLogProvider user log provider * @param internalLogProvider internal log provider */ public SimpleLogService( LogProvider userLogProvider, LogProvider internalLogProvider ) { this.userLogProvider = new DuplicatingLogProvider( userLogProvider, internalLogProvider ); this.internalLogProvider = internalLogProvider; }