Skip to content

Commit

Permalink
Merge d247b8a into 0f96fc3
Browse files Browse the repository at this point in the history
  • Loading branch information
buenaflor authored Mar 27, 2023
2 parents 0f96fc3 + d247b8a commit 174b08b
Show file tree
Hide file tree
Showing 3 changed files with 135 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

- Add time-to-initial-display and time-to-full-display measurements to Activity transactions ([#2611](https://github.com/getsentry/sentry-java/pull/2611))
- Read integration list written by sentry gradle plugin from manifest ([#2598](https://github.com/getsentry/sentry-java/pull/2598))
- Add Logcat adapter ([#2620](https://github.com/getsentry/sentry-java/pull/2620))

### Fixes

Expand Down
18 changes: 18 additions & 0 deletions sentry-android-core/api/sentry-android-core.api
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,24 @@ public final class io/sentry/android/core/SentryInitProvider {
public fun shutdown ()V
}

public final class io/sentry/android/core/SentryLogcatAdapter {
public fun <init> ()V
public static fun d (Ljava/lang/String;Ljava/lang/String;)I
public static fun d (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
public static fun e (Ljava/lang/String;Ljava/lang/String;)I
public static fun e (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
public static fun i (Ljava/lang/String;Ljava/lang/String;)I
public static fun i (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
public static fun v (Ljava/lang/String;Ljava/lang/String;)I
public static fun v (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
public static fun w (Ljava/lang/String;Ljava/lang/String;)I
public static fun w (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
public static fun w (Ljava/lang/String;Ljava/lang/Throwable;)I
public static fun wtf (Ljava/lang/String;Ljava/lang/String;)I
public static fun wtf (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
public static fun wtf (Ljava/lang/String;Ljava/lang/Throwable;)I
}

public final class io/sentry/android/core/SentryPerformanceProvider : android/app/Application$ActivityLifecycleCallbacks {
public fun <init> ()V
public fun attachInfo (Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
package io.sentry.android.core;

import android.util.Log;
import io.sentry.Breadcrumb;
import io.sentry.Sentry;
import io.sentry.SentryLevel;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

/**
* This class replaces {@link android.util.Log} with its own implementations which creates a {@link
* io.sentry.Breadcrumb} for each log. It only replaces log functions that meet a minimum level set
* by the user on the Sentry Android Gradle Plugin.
*/
@ApiStatus.Internal
public final class SentryLogcatAdapter {

private static void addAsBreadcrumb(
@Nullable String tag, @NotNull SentryLevel level, @Nullable String msg) {
addAsBreadcrumb(tag, level, msg, null);
}

private static void addAsBreadcrumb(
@Nullable String tag, @NotNull SentryLevel level, @Nullable Throwable tr) {
addAsBreadcrumb(tag, level, null, tr);
}

private static void addAsBreadcrumb(
@Nullable final String tag,
@NotNull final SentryLevel level,
@Nullable final String msg,
@Nullable final Throwable tr) {
Breadcrumb breadcrumb = new Breadcrumb();
breadcrumb.setCategory("Logcat");
breadcrumb.setMessage(msg);
breadcrumb.setLevel(level);
if (tag != null) {
breadcrumb.setData("tag", tag);
}
if (tr != null && tr.getMessage() != null) {
breadcrumb.setData("throwable", tr.getMessage());
}
Sentry.addBreadcrumb(breadcrumb);
}

public static int v(@Nullable String tag, @Nullable String msg) {
addAsBreadcrumb(tag, SentryLevel.DEBUG, msg);
return Log.v(tag, msg);
}

public static int v(@Nullable String tag, @Nullable String msg, @Nullable Throwable tr) {
addAsBreadcrumb(tag, SentryLevel.DEBUG, msg, tr);
return Log.v(tag, msg, tr);
}

public static int d(@Nullable String tag, @Nullable String msg) {
addAsBreadcrumb(tag, SentryLevel.DEBUG, msg);
return Log.d(tag, msg);
}

public static int d(@Nullable String tag, @Nullable String msg, @Nullable Throwable tr) {
addAsBreadcrumb(tag, SentryLevel.DEBUG, msg, tr);
return Log.d(tag, msg, tr);
}

public static int i(@Nullable String tag, @Nullable String msg) {
addAsBreadcrumb(tag, SentryLevel.INFO, msg);
return Log.i(tag, msg);
}

public static int i(@Nullable String tag, @Nullable String msg, @Nullable Throwable tr) {
addAsBreadcrumb(tag, SentryLevel.INFO, msg, tr);
return Log.i(tag, msg, tr);
}

public static int w(@Nullable String tag, @Nullable String msg) {
addAsBreadcrumb(tag, SentryLevel.WARNING, msg);
return Log.w(tag, msg);
}

public static int w(@Nullable String tag, @Nullable String msg, @Nullable Throwable tr) {
addAsBreadcrumb(tag, SentryLevel.WARNING, msg, tr);
return Log.w(tag, msg, tr);
}

public static int w(@Nullable String tag, @Nullable Throwable tr) {
addAsBreadcrumb(tag, SentryLevel.WARNING, tr);
return Log.w(tag, tr);
}

public static int e(@Nullable String tag, @Nullable String msg) {
addAsBreadcrumb(tag, SentryLevel.ERROR, msg);
return Log.e(tag, msg);
}

public static int e(@Nullable String tag, @Nullable String msg, @Nullable Throwable tr) {
addAsBreadcrumb(tag, SentryLevel.ERROR, msg, tr);
return Log.e(tag, msg, tr);
}

public static int wtf(@Nullable String tag, @Nullable String msg) {
addAsBreadcrumb(tag, SentryLevel.ERROR, msg);
return Log.wtf(tag, msg);
}

public static int wtf(@Nullable String tag, @Nullable Throwable tr) {
addAsBreadcrumb(tag, SentryLevel.ERROR, tr);
return Log.wtf(tag, tr);
}

public static int wtf(@Nullable String tag, @Nullable String msg, @Nullable Throwable tr) {
addAsBreadcrumb(tag, SentryLevel.ERROR, msg, tr);
return Log.wtf(tag, msg, tr);
}
}

0 comments on commit 174b08b

Please sign in to comment.