Description
I created this issue to talk about the best solution to be followed for the following problem.
Problem:
- Users can't filter logs on
beforeLogs that were created by the native SDKs.
- Each SDK has their cache flow logic, having two queues for flushing (one in JavaScript and another on the native side)
Solution 1:
- Move logs from
beforelog on the Native side to the JavaScript and always return null/empty on the native side.
- Drop the logs on the native side so we keep a single queue on the JavaScript side.
Problems:
- Native side will send internal logs that logs are being dropped by
beforelog.
- Sentry JavaScript exposes
_INTERNAL_captureSerializedLog that could be used to skip the log processing on the JavaScript SDK, but doesn't expose a way of converting Log to serializedLog, requiring code duplication.
Solution 2:
- When
beforeLog is called on the native layer, call the JavaScript beforeLog with the Native log and wait for the JavaScript response with the changes done by the end user.
Problems:
- Doesn't fix the two queues for sending Logs.
- Native layer always having to wait for a response from the JavaScript layer when calling
BeforeLog.
It would be nice to have some feedback on which solution seems like the better path forward, or if there’s a third alternative I might be missing.
Description
I created this issue to talk about the best solution to be followed for the following problem.
Problem:
beforeLogsthat were created by the native SDKs.Solution 1:
beforelogon the Native side to the JavaScript and always return null/empty on the native side.Problems:
beforelog._INTERNAL_captureSerializedLogthat could be used to skip the log processing on the JavaScript SDK, but doesn't expose a way of convertingLogtoserializedLog, requiring code duplication.Solution 2:
beforeLogis called on the native layer, call the JavaScriptbeforeLogwith the Native log and wait for the JavaScript response with the changes done by the end user.Problems:
BeforeLog.It would be nice to have some feedback on which solution seems like the better path forward, or if there’s a third alternative I might be missing.