class CappedLogger {

    public CappedLogger setTimeLimit( long time, @Nonnull TimeUnit unit, @Nonnull Clock clock )
    {
        if ( time < 1 )
        {
            throw new IllegalArgumentException( "The time limit must be positive" );
        }
        if ( unit == null )
        {
            throw new IllegalArgumentException( "The time unit cannot be null" );
        }
        if ( clock == null )
        {
            throw new IllegalArgumentException( "The clock used for time limiting cannot be null" );
        }
        filter = filter.setTimeLimit( time, unit, clock );
        return this;
    }

    public  CappedLogger( @Nonnull Log delegate );

}