Issue title: Custom HttpLogWriter - access to HttpServletRequest and HttpServletResponse
 Issue body: Hi, guys I'm looking for a way to log all my requests and responses in the database (1 record = 1 request + 1 response). 
My use case in details:
1. Log record in database with request URl, params, IP, start date etc.
2. Update database record (when request finish) and save response, exceptions, end date etc.
In addition in this step I would like to get some attributes from HttpServletRequest.

Can I do this using your library?  I am trying to write custom **HttpLogWriter**. But I have problem with access to HttpServletRequest and HttpServletResponse (static way - RequestContextHolder.getRequestAttributes() return null). I have also problem with autowiring my repository in this context in other places (eg. controllers) it work's without problem. Maybe I could realize it with other components of yourlibrary? Maybe filters?

My PoC implementation:
`public class CustomLogWritter implements HttpLogWriter {

    @Autowired
    private RequestAuditRepository repository;


    @Override
    public void writeRequest(Precorrelation<String> precorrelation) throws IOException {
        HttpRequest logbookHttpRequest = precorrelation.getOriginalRequest();

        RequestAuditLog requestAuditLog = new RequestAuditLog();
        requestAuditLog.setRequestPayload(logbookHttpRequest.getBodyAsString());
        //..setting url, IP, start date etc


        RequestAuditLog savedRequest = repository.save(requestAuditLog);
        getHttpServletRequest().setAttribute("log_id", savedRequest.getId());
    }

    @Override
    public void writeResponse(Correlation<String, String> correlation) throws IOException {
        HttpResponse logbookHttpResponse = correlation.getOriginalResponse();

        Long logId = (Long) getHttpServletRequest().getAttribute("log_id");
        RequestAuditLog requestAuditLog = repository.findById(logId).
                orElseThrow(() -> new ResourceNotFoundException("Log", logId.toString()));

        requestAuditLog.setEndDate(LocalDateTime.now());
        requestAuditLog.setResponsePayload(logbookHttpResponse.getBodyAsString());
        repository.save(requestAuditLog);
    }

    private HttpServletRequest getHttpServletRequest() {
        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
        return ((ServletRequestAttributes)requestAttributes).getRequest();
    }
}`

WebConfig:
` @Bean
    public Logbook logbook() {
        return Logbook.builder()
                .writer(new CustomLogWritter())
                .condition(exclude(
                        requestTo("/health"),
                        requestTo("/admin/**")))
                .build();
    }`

RequestAuditRepository :
`@Repository
public interface RequestAuditRepository extends JpaRepository<RequestAuditLog, Long> {
}
`

Thank you in advance for your help :) 

 Comments: 
 Comment 0: > My use case in details:
> 
> 1. Log record in database with request URl, params, IP, start date etc.
> 2. Update database record (when request finish) and save response, exceptions, end date etc.
>   In addition in this step I would like to get some attributes from HttpServletRequest.
>
> Can I do this using your library?

Why do you want to update? You could just wait for the response and then log both parts in a single step. #229 might give you some hints as well.

> But I have problem with access to HttpServletRequest and HttpServletResponse

Logbook is meant for any kind of HTTP traffic. Outgoing and incoming. Therefore it's not built on top of the servlet API. The `HttpRequest` and `HttpResponse` abstractions should give you everything you need to access the information you listed, e.g. request URI, IP, etc.
{'source': 'GithubIssues', 'repo_name_with_owner': 'zalando/logbook', 'issue_id': 330899314, 'repo_stars': 1159.0}