Matthias Andreas Benkard | b8fbc37 | 2021-05-11 06:50:45 +0200 | [diff] [blame] | 1 | package eu.mulk.quarkus.googlecloud.jsonlogging; |
| 2 | |
| 3 | import javax.json.JsonObjectBuilder; |
| 4 | |
Matthias Andreas Benkard | 692f48d | 2021-08-31 21:06:50 +0200 | [diff] [blame] | 5 | /** |
| 6 | * A structured parameter usable as logging payload. |
| 7 | * |
| 8 | * <p>Any instance of {@link StructuredParameter} can be passed as a log parameter to the {@code *f} |
| 9 | * family of logging functions on {@link org.jboss.logging.Logger}. |
| 10 | * |
| 11 | * <p>Example: |
| 12 | * |
| 13 | * <pre>{@code |
| 14 | * StructuredParameter p1 = ...; |
| 15 | * StructuredParameter p2 = ...; |
| 16 | * |
| 17 | * logger.logf("Something interesting happened.", p1, p2); |
| 18 | * }</pre> |
| 19 | * |
| 20 | * @see KeyValueParameter |
| 21 | * @see Label |
| 22 | */ |
Matthias Andreas Benkard | b8fbc37 | 2021-05-11 06:50:45 +0200 | [diff] [blame] | 23 | public interface StructuredParameter { |
Matthias Andreas Benkard | 692f48d | 2021-08-31 21:06:50 +0200 | [diff] [blame] | 24 | |
| 25 | /** |
Matthias Andreas Benkard | 42da9f1 | 2021-09-02 18:47:28 +0200 | [diff] [blame] | 26 | * The JSON to be embedded in the payload of the log entry. |
Matthias Andreas Benkard | 692f48d | 2021-08-31 21:06:50 +0200 | [diff] [blame] | 27 | * |
| 28 | * <p>May contain multiple keys and values as well as nested objects. Each top-level entry of the |
Matthias Andreas Benkard | 42da9f1 | 2021-09-02 18:47:28 +0200 | [diff] [blame] | 29 | * returned object is embedded as a top-level entry in the payload of the log entry. |
| 30 | * |
| 31 | * @return A {@link JsonObjectBuilder} holding a set of key–value pairs. |
Matthias Andreas Benkard | 692f48d | 2021-08-31 21:06:50 +0200 | [diff] [blame] | 32 | */ |
Matthias Andreas Benkard | b8fbc37 | 2021-05-11 06:50:45 +0200 | [diff] [blame] | 33 | JsonObjectBuilder json(); |
| 34 | } |