Closed wirthandras closed 4 months ago
Hi!
If I understood correctly, you'd like to export the logs that are created using the Android Log class. Are you using the Android Log class directly in your code every time you create a log? Or are you using a wrapper tool, such as Timber for example?
I am using Android Log class
I see, thank you. That use case would require an automatic instrumentation feature that is not currently available, although I think this isn't the first time I've seen a request to provide this feature, so I don't see why it can't be added in the future. Right now I'm focusing on an instrumentation refactor so I believe that adding new instrumentations should wait until that's done to avoid conflicts later on.
Though, in the meantime (if you wouldn't mind changing all the places in your code where you reference the Android Log class), you could use a wrapper that takes care of sending your logs to both places, the logcat and also OTel. I think this could work when using Timber for example (I haven't tested it though):
Timber.plant(Timber.DebugTree()) // To show the logs in logcat
Timber.plant(object : Timber.Tree() { // This tree will export the logs
val logger = rum?.openTelemetry?.logsBridge?.get("example-logger")
override fun log(priority: Int, tag: String?, message: String, t: Throwable?) {
logger?.logRecordBuilder()?.setBody(message)?.emit()
}
})
The downside is that you'd have to always create logs using timber, like so:Timber.d()
instead of Log.d()
.
Ok thanks, I will keep an eye on the upcoming versions
This also sounds like it's related to #142.
Hi,
I integrated this lib into an android kotlin code base with the following gradle import:
And my startup code:
I can confirm the telemetry solution is working with directed statements (I mean about this part of code):
So these direct statements landed on our jeager(Trace), prometheus(metric), and local file (log) output as expected.
But it seems to me all of the logs which can be seen in logcat (in android studio) are missing
I checked the following tickets: https://github.com/open-telemetry/opentelemetry-android/issues/302 https://github.com/open-telemetry/opentelemetry-android/issues/142 My implementation based on this: https://github.com/open-telemetry/opentelemetry-android/issues/326#issuecomment-2085330777
based on the example i tried to add instrumentation with new imports:
but I got the following compile time error:
What is the way to enrich my app to send logs and metrics with this code?
Shall I create something custom code which access metrics and logs and send via direct statments? Or shall I wait a next version of lib which cover this? Anything else? I am little bit unsure about the current situation since I saw in referenced tickets it should works https://github.com/open-telemetry/opentelemetry-android/issues/142#issuecomment-1795851676 https://github.com/open-telemetry/opentelemetry-android/issues/326#issuecomment-2082521963
Thanks in advance