blob: 0588fbb272e7177f99f4332d93672e9d689d8edb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
// SPDX-FileCopyrightText: © 2021 Matthias Andreas Benkard <code@mail.matthias.benkard.de>
//
// SPDX-License-Identifier: LGPL-3.0-or-later
package eu.mulk.quarkus.googlecloud.jsonlogging;
import java.util.Collection;
/**
* A user-supplied provider for {@link Label}s.
*
* <p>Instances of this interface that are registered with the {@link Formatter} are applied to each
* log entry that is logged.
*
* <p>If you are using the Quarkus extension, any CDI beans registered under this interface are
* registered automatically.
*
* <p><strong>Example:</strong>
*
* <pre>{@code
* @Singleton
* @Unremovable
* public final class RequestIdLabelProvider implements LabelProvider {
*
* @Override
* public Collection<Label> getLabels() {
* return List.of(Label.of("requestId", RequestContext.current().getRequestId()));
* }
* }
* }</pre>
*
* Result:
*
* <pre>{@code
* {
* "textPayload": "Request rejected: unauthorized.",
* "labels": {
* "requestId": "123"
* }
* }
* }</pre>
*
* @see StructuredParameterProvider
*/
public interface LabelProvider {
/**
* Provides a collection of {@link Label}s to add to each log entry that is logged.
*
* @return a collection of {@link Label}s to add to each log entry that is logged.
*/
Collection<Label> getLabels();
}
|