Skip to content

Commit

Permalink
Update logger and docs
Browse files Browse the repository at this point in the history
  • Loading branch information
kpgalligan committed Mar 4, 2023
1 parent 5fa0a0d commit 941283d
Show file tree
Hide file tree
Showing 37 changed files with 257 additions and 424 deletions.
8 changes: 2 additions & 6 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,8 @@ name: deploy
on: workflow_dispatch

jobs:
build:
strategy:
matrix:
os: [macOS-latest, ubuntu-latest]
runs-on: ${{matrix.os}}
deploy:
runs-on: macos-latest
steps:
- name: Checkout the repo
uses: actions/checkout@v2
Expand All @@ -31,7 +28,6 @@ jobs:
restore-keys: |
${{ runner.os }}-gradle-
- name: Publish Mac/Windows Artifacts
if: matrix.os == 'macOS-latest'
run: ./gradlew publish --no-daemon --stacktrace --no-build-cache
env:
ORG_GRADLE_PROJECT_SONATYPE_NEXUS_USERNAME: ${{ secrets.SONATYPE_NEXUS_USERNAME }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,25 @@ package co.touchlab.kermit.bugsnag
import co.touchlab.crashkios.bugsnag.BugsnagCalls
import co.touchlab.crashkios.bugsnag.BugsnagCallsActual
import co.touchlab.crashkios.bugsnag.enableBugsnag
import co.touchlab.kermit.DefaultFormatter
import co.touchlab.kermit.ExperimentalKermitApi
import co.touchlab.kermit.LogWriter
import co.touchlab.kermit.Message
import co.touchlab.kermit.MessageStringFormatter
import co.touchlab.kermit.Severity
import co.touchlab.kermit.Tag

@ExperimentalKermitApi
class BugsnagLogWriter(
private val minSeverity: Severity = Severity.Info,
private val minCrashSeverity: Severity = Severity.Warn,
private val printTag: Boolean = true
private val minCrashSeverity: Severity? = Severity.Warn,
private val messageStringFormatter: MessageStringFormatter = DefaultFormatter
) : LogWriter() {

private val bugsnagCalls: BugsnagCalls = BugsnagCallsActual()

init {
if (minSeverity > minCrashSeverity) {
if (minCrashSeverity != null && minSeverity > minCrashSeverity) {
throw IllegalArgumentException("minSeverity ($minSeverity) cannot be greater than minCrashSeverity ($minCrashSeverity)")
}

Expand All @@ -38,13 +42,9 @@ class BugsnagLogWriter(

override fun log(severity: Severity, message: String, tag: String, throwable: Throwable?) {
bugsnagCalls.logMessage(
if (printTag) {
"$tag : $message"
} else {
message
}
messageStringFormatter.formatMessage(severity, Tag(tag), Message(message))
)
if (throwable != null && severity >= minCrashSeverity) {
if (throwable != null && minCrashSeverity != null && severity >= minCrashSeverity) {
bugsnagCalls.sendHandledException(throwable)
}
}
Expand Down
2 changes: 1 addition & 1 deletion extensions/kermit-crashlytics/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ kotlin {

val commonMain by sourceSets.getting {
dependencies {
implementation(libs.crashkios.crashlytics)
api(libs.crashkios.crashlytics)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,25 @@ package co.touchlab.kermit.crashlytics
import co.touchlab.crashkios.crashlytics.CrashlyticsCalls
import co.touchlab.crashkios.crashlytics.CrashlyticsCallsActual
import co.touchlab.crashkios.crashlytics.enableCrashlytics
import co.touchlab.kermit.DefaultFormatter
import co.touchlab.kermit.ExperimentalKermitApi
import co.touchlab.kermit.LogWriter
import co.touchlab.kermit.Message
import co.touchlab.kermit.MessageStringFormatter
import co.touchlab.kermit.Severity
import co.touchlab.kermit.Tag

@ExperimentalKermitApi
class CrashlyticsLogWriter(
private val minSeverity: Severity = Severity.Info,
private val minCrashSeverity: Severity = Severity.Warn,
private val printTag: Boolean = true
private val minCrashSeverity: Severity? = Severity.Warn,
private val messageStringFormatter: MessageStringFormatter = DefaultFormatter
) : LogWriter() {

private val crashlyticsCalls: CrashlyticsCalls = CrashlyticsCallsActual()

init {
if(minSeverity > minCrashSeverity) {
if (minCrashSeverity != null && minSeverity > minCrashSeverity) {
throw IllegalArgumentException("minSeverity ($minSeverity) cannot be greater than minCrashSeverity ($minCrashSeverity)")
}

Expand All @@ -38,13 +42,9 @@ class CrashlyticsLogWriter(

override fun log(severity: Severity, message: String, tag: String, throwable: Throwable?) {
crashlyticsCalls.logMessage(
if (printTag) {
"$tag : $message"
} else {
message
}
messageStringFormatter.formatMessage(severity, Tag(tag), Message(message))
)
if (throwable != null && severity >= minCrashSeverity) {
if (throwable != null && minCrashSeverity != null && severity >= minCrashSeverity) {
crashlyticsCalls.sendHandledException(throwable)
}
}
Expand Down

This file was deleted.

10 changes: 2 additions & 8 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,8 @@ org.gradle.jvmargs=-Xmx2g
SONATYPE_HOST=DEFAULT
RELEASE_SIGNING_ENABLED=true
GROUP=co.touchlab
VERSION_NAME=2.0.0-SNAPSHOT
KOTLIN_VERSION=1.8.0

STATELY_VERSION=1.2.3
TESTHELP_VERSION=0.6.3
CRASHKIOS_CORE_VERSION=0.6.0
BUGSNAG_ANDROID_VERSION=5.12.0
CRASHLYTICS_ANDROID_VERSION=18.2.1
VERSION_NAME=2.0.0-RC
KOTLIN_VERSION=1.8.10

POM_NAME=Kermit
POM_DESCRIPTION=Kermit The Log
Expand Down
16 changes: 4 additions & 12 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,11 @@ android-gradle-plugin = "7.2.2"
android-library = "7.2.2"

google-services = "4.3.10"
firebase-crashlytics-gradle = "2.7.1"

bugsnag-android-gradle-plugin = "7.0.0"
stately = "1.2.5"
testhelp = "0.6.5"

stately = "1.2.3"
testhelp = "0.6.4"

crashkios = "0.8.1"
crashkios-bugsnag = "0.7.1-alpha3"
crashkios-utils = "0.7.1-alpha3"
crashkios = "0.8.2"
bugsnag = "5.26.0"

firebase-bom = "28.4.0"
Expand All @@ -53,14 +48,11 @@ androidx-coordinatorLayout = { module = "androidx.coordinatorlayout:coordinatorl
android-material = { module = "com.google.android.material:material", version.ref = "android-material" }

android-gradle-plugin = { module = "com.android.tools.build:gradle", version.ref = "android-gradle-plugin" }
bugsnag-android-gradle-plugin = { module = "com.bugsnag:bugsnag-android-gradle-plugin", version.ref = "bugsnag-android-gradle-plugin" }

google-services = { module = "com.google.gms:google-services", version.ref = "google-services" }
firebase-crashlytics-gradle = { module = "com.google.firebase:firebase-crashlytics-gradle", version.ref = "firebase-crashlytics-gradle" }

crashkios-crashlytics = { module = "co.touchlab.crashkios:crashlytics", version.ref = "crashkios" }
crashkios-bugsnag = { module = "co.touchlab.crashkios:bugsnag", version.ref = "crashkios-bugsnag" }
crashkios-utils = { module = "co.touchlab.crashkios:utils", version.ref = "crashkios-utils" }
crashkios-bugsnag = { module = "co.touchlab.crashkios:bugsnag", version.ref = "crashkios" }
bugsnag-android = { module = "com.bugsnag:bugsnag-android", version.ref = "bugsnag" }
stately-collections = { module = "co.touchlab:stately-collections", version.ref = "stately"}
testhelp = { module = "co.touchlab:testhelp", version.ref = "testhelp" }
Expand Down
7 changes: 2 additions & 5 deletions kermit-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@ plugins {
kotlin("multiplatform")
}

val STATELY_VERSION: String by project
val TESTHELP_VERSION: String by project

kotlin {
android {
publishAllLibraryVariants()
Expand Down Expand Up @@ -134,8 +131,8 @@ kotlin {
commonTest.dependencies {
implementation("org.jetbrains.kotlin:kotlin-test-common")
implementation("org.jetbrains.kotlin:kotlin-test-annotations-common")
implementation("co.touchlab:stately-collections:$STATELY_VERSION")
implementation("co.touchlab:testhelp:$TESTHELP_VERSION")
implementation(libs.stately.collections)
implementation(libs.testhelp)
}

androidTest.dependencies {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,10 @@ package co.touchlab.kermit

import android.util.Log

class LogcatWriter : LogWriter() {
class LogcatWriter(private val messageStringFormatter: MessageStringFormatter = DefaultFormatter) : LogWriter() {
// When running unit tests, Log calls will fail. Back up to a common writer
private val testWriter: CommonWriter = CommonWriter(messageStringFormatter)

private fun getSeverity(severity: Severity) = when (severity) {
Severity.Verbose -> Log.VERBOSE
Severity.Debug -> Log.DEBUG
Expand All @@ -30,24 +33,29 @@ class LogcatWriter : LogWriter() {
}

override fun log(severity: Severity, message: String, tag: String, throwable: Throwable?) {
if(throwable == null){
when(severity){
Severity.Verbose -> Log.v(tag, message)
Severity.Debug -> Log.d(tag, message)
Severity.Info -> Log.i(tag, message)
Severity.Warn -> Log.w(tag, message)
Severity.Error -> Log.e(tag, message)
Severity.Assert -> Log.wtf(tag, message)
}
}else{
when(severity){
Severity.Verbose -> Log.v(tag, message, throwable)
Severity.Debug -> Log.d(tag, message, throwable)
Severity.Info -> Log.i(tag, message, throwable)
Severity.Warn -> Log.w(tag, message, throwable)
Severity.Error -> Log.e(tag, message, throwable)
Severity.Assert -> Log.wtf(tag, message, throwable)
val formattedMessage = messageStringFormatter.formatMessage(null, null, Message(message))
try {
if(throwable == null){
when(severity){
Severity.Verbose -> Log.v(tag, formattedMessage)
Severity.Debug -> Log.d(tag, formattedMessage)
Severity.Info -> Log.i(tag, formattedMessage)
Severity.Warn -> Log.w(tag, formattedMessage)
Severity.Error -> Log.e(tag, formattedMessage)
Severity.Assert -> Log.wtf(tag, formattedMessage)
}
}else{
when(severity){
Severity.Verbose -> Log.v(tag, formattedMessage, throwable)
Severity.Debug -> Log.d(tag, formattedMessage, throwable)
Severity.Info -> Log.i(tag, formattedMessage, throwable)
Severity.Warn -> Log.w(tag, formattedMessage, throwable)
Severity.Error -> Log.e(tag, formattedMessage, throwable)
Severity.Assert -> Log.wtf(tag, formattedMessage, throwable)
}
}
} catch (e: Exception) {
testWriter.log(severity, message, tag, throwable)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,15 @@ interface MessageStringFormatter {
fun formatSeverity(severity: Severity) = "$severity:"
fun formatTag(tag: Tag) = "(${tag.tag})"
fun formatMessage(severity: Severity?, tag: Tag?, message: Message): String {
// Optimize for Android
if(severity == null && tag == null)
return message.message

val sb = StringBuilder()
if (severity != null) sb.append(formatSeverity(severity)).append(" ")
if (tag != null && tag.tag.isNotEmpty()) sb.append(formatTag(tag)).append(" ")
sb.append(message.message)

return sb.toString()
}
}
Expand Down
Loading

0 comments on commit 941283d

Please sign in to comment.