Sentry Java - Capture "Caused By" in log

I’m using Sentry to track Java exceptions in an OSGI application. I’ve created a custom Logback appender and everything is working correctly. However, part of the stack traces I see in the text logs are not captured by Sentry. The log format is like this:

2020-04-06 10:30:28.568 ERROR [com.mycompany.core.thingy.services.impl.ThingyServiceServiceImpl] Could not fetch data: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was NUMBER at path $.
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was NUMBER at path $.
	at com.google.gson.Gson.fromJson(Gson.java:939)
	at com.google.gson.Gson.fromJson(Gson.java:994)
	at com.mycompany.core.thingy.services.impl.ThingyServiceServiceImpl.fetchJson(ThingyServiceServiceImpl.java:167)
	at com.mycompany.core.thingy.services.impl.ThingyServiceServiceImpl.getthingy(ThingyServiceServiceImpl.java:85)
	at com.mycompany.core.thingy.schedulers.impl.UpdateThingyListTaskBeanImpl.lambda$createThingyTags$3(UpdateThingyListTaskBeanImpl.java:204)
	at java.util.HashMap.forEach(HashMap.java:1289)
	at com.mycompany.core.thingy.schedulers.impl.UpdateThingyListTaskBeanImpl.createThingyTags(UpdateThingyListTaskBeanImpl.java:198)
	at com.mycompany.core.thingy.schedulers.impl.UpdateThingyListTaskBeanImpl.process(UpdateThingyListTaskBeanImpl.java:141)
	at org.apache.sling.event.impl.jobs.JobConsumerManager$JobConsumerWrapper.process(JobConsumerManager.java:502) [org.apache.sling.event:4.2.12]
	at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.startJob(JobQueueImpl.java:293) [org.apache.sling.event:4.2.12]
	at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.access$100(JobQueueImpl.java:60) [org.apache.sling.event:4.2.12]
	at org.apache.sling.event.impl.jobs.queues.JobQueueImpl$1.run(JobQueueImpl.java:229) [org.apache.sling.event:4.2.12]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was NUMBER at path $.
	at com.google.gson.internal.bind.JsonTreeReader.expect(JsonTreeReader.java:162) [com.adobe.cq.gson:2.8.5]
	at com.google.gson.internal.bind.JsonTreeReader.beginObject(JsonTreeReader.java:87) [com.adobe.cq.gson:2.8.5]
	at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:183) [com.adobe.cq.gson:2.8.5]
	at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:145) [com.adobe.cq.gson:2.8.5]
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41) [com.adobe.cq.gson:2.8.5]
	at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:187) [com.adobe.cq.gson:2.8.5]
	at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:145) [com.adobe.cq.gson:2.8.5]
	at com.google.gson.Gson.fromJson(Gson.java:927)
	... 14 common frames omitted

But all Sentry sees is the exception before the “Caused by” line. How can I get Sentry to also record that line? I’m just using the default io.sentry.logback.SentryAppender.