My use case is adding global service.id field along side with builtin service.name via StructuredLoggingJsonMembersCustomizer, Application.current() will be available after some point, unexpected "service.id":null is appended before that point.
public class ServiceIdStructuredLoggingJsonMembersCustomizer implements StructuredLoggingJsonMembersCustomizer<String> {
@Override
public void customize(JsonWriter.Members<String> members) {
members.add("service.id", () -> Application.current().map(Application::getInstanceId).orElse(null));
}
}
Comment From: wilkinsona
You can use whenNotNull to indicate that you want a member to only be included when it has a non-null value:
public class ServiceIdStructuredLoggingJsonMembersCustomizer implements StructuredLoggingJsonMembersCustomizer<String> {
@Override
public void customize(JsonWriter.Members<String> members) {
members.add("service.id", () -> Application.current().map(Application::getInstanceId).orElse(null))
.whenNotNull();
}
}