The DBAppender throws an exception if caller data is null on an event.
This happens in ch.qos.logback.classic.db.DBAppender.bindCallerDataWithPreparedStatement() at line 165.
We have a scenario where various web-sites are sending log events to a common remote "SocketServer" (using ch.qos.logback.classic.net.SocketAppender). They all use the option: <includeCallerData>false</includeCallerData>
The common socket server writes to file, but we wanted to try adding a DbAppender there and got an exception.
Hacking the code to check for callerdata and to set the SQL parms to default values, got around the problem.