Matthias Andreas Benkard | b8fbc37 | 2021-05-11 06:50:45 +0200 | [diff] [blame] | 1 | package eu.mulk.quarkus.googlecloud.jsonlogging; |
| 2 | |
Matthias Andreas Benkard | 82d7e44 | 2021-08-29 08:34:11 +0200 | [diff] [blame] | 3 | import io.quarkus.arc.Arc; |
Matthias Andreas Benkard | b8fbc37 | 2021-05-11 06:50:45 +0200 | [diff] [blame] | 4 | import io.quarkus.runtime.RuntimeValue; |
| 5 | import io.quarkus.runtime.annotations.Recorder; |
| 6 | import java.util.Optional; |
Matthias Andreas Benkard | 82d7e44 | 2021-08-29 08:34:11 +0200 | [diff] [blame] | 7 | import java.util.stream.Collectors; |
Matthias Andreas Benkard | b8fbc37 | 2021-05-11 06:50:45 +0200 | [diff] [blame] | 8 | |
Matthias Andreas Benkard | 692f48d | 2021-08-31 21:06:50 +0200 | [diff] [blame] | 9 | /** A Quarkus recorder that registers {@link Formatter} as a log formatter for the application. */ |
Matthias Andreas Benkard | b8fbc37 | 2021-05-11 06:50:45 +0200 | [diff] [blame] | 10 | @Recorder |
| 11 | public class GoogleCloudJsonLoggingRecorder { |
| 12 | public RuntimeValue<Optional<java.util.logging.Formatter>> initialize() { |
Matthias Andreas Benkard | 692f48d | 2021-08-31 21:06:50 +0200 | [diff] [blame] | 13 | |
Matthias Andreas Benkard | 82d7e44 | 2021-08-29 08:34:11 +0200 | [diff] [blame] | 14 | var parameterProviders = |
Matthias Andreas Benkard | 692f48d | 2021-08-31 21:06:50 +0200 | [diff] [blame] | 15 | Arc.container().select(StructuredParameterProvider.class).stream() |
| 16 | .collect(Collectors.toList()); |
| 17 | |
| 18 | var labelProviders = |
| 19 | Arc.container().select(LabelProvider.class).stream().collect(Collectors.toList()); |
| 20 | |
| 21 | return new RuntimeValue<>(Optional.of(new Formatter(parameterProviders, labelProviders))); |
Matthias Andreas Benkard | b8fbc37 | 2021-05-11 06:50:45 +0200 | [diff] [blame] | 22 | } |
| 23 | } |