Skip to content

Commit a399161

Browse files
committed
Convert the examples to Kotlin
1 parent e82fbfd commit a399161

File tree

24 files changed

+303
-276
lines changed

24 files changed

+303
-276
lines changed

examples/app/build.gradle

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
1+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
2+
13
plugins {
24
id 'com.android.application'
35
id 'de.mannodermaus.android-junit5'
6+
id 'org.jetbrains.kotlin.android'
47
}
58

69
android {
710
namespace = 'com.github.neboskreb.log4j2.examples.app'
8-
compileSdk = 35
11+
compileSdk = 36
912

1013
defaultConfig {
1114
applicationId "com.github.neboskreb.log4j2.examples.app"
12-
minSdk = 27
13-
targetSdk = 35
15+
minSdk = 26
16+
targetSdk = 36
1417
versionCode 1
1518
versionName "1.0"
1619

@@ -38,6 +41,12 @@ android {
3841
exclude 'META-INF/DEPENDENCIES'
3942
exclude 'META-INF/LICENSE*'
4043
}
44+
45+
kotlin {
46+
compilerOptions {
47+
jvmTarget = JvmTarget.JVM_17
48+
}
49+
}
4150
}
4251

4352
dependencies {
@@ -51,12 +60,7 @@ dependencies {
5160
implementation 'androidx.appcompat:appcompat:1.7.1'
5261
// implementation 'com.android.support:design:28.0.0'
5362
implementation 'com.google.android.material:material:1.13.0'
54-
55-
// ==== Lombok
56-
//noinspection AnnotationProcessorOnCompilePath -- because Lombok annotations are contained in this package, so you get import errors without it
57-
compileOnly 'org.projectlombok:lombok:1.18.42'
58-
annotationProcessor 'org.projectlombok:lombok:1.18.42'
59-
// ==== /Lombok
63+
implementation 'androidx.core:core-ktx:1.17.0'
6064

6165

6266
testImplementation platform('org.junit:junit-bom:5.14.0')

examples/app/src/androidTest/assets/log4j2.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ appender.logcat.layout.pattern = %m%n
1010
appender.logcat.stack-trace-rendering = logcat
1111

1212

13-
logger.lib.name = com.github.neboskreb.lib
13+
logger.lib.name = com.github.neboskreb.log4j2.examples.lib
1414
logger.lib.level = off
1515

16-
logger.app.name = com.github.neboskreb.app
16+
logger.app.name = com.github.neboskreb.log4j2.examples.app
1717
logger.app.level = off

examples/app/src/androidTest/java/com/github/neboskreb/log4j2/examples/app/GreatManagerAndroidTest.java

Lines changed: 0 additions & 46 deletions
This file was deleted.
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.github.neboskreb.log4j2.examples.app
2+
3+
import com.github.neboskreb.log4j2.android.AndroidLog4jExtension
4+
import com.github.neboskreb.log4j2.examples.lib.AwesomeWorker
5+
import org.junit.jupiter.api.Test
6+
import org.junit.jupiter.api.extension.ExtendWith
7+
8+
@ExtendWith(AndroidLog4jExtension::class)
9+
class GreatManagerAndroidTest {
10+
@Test
11+
fun onLogFatalMessageClicked() {
12+
// GIVEN
13+
val awesomeWorker = AwesomeWorker()
14+
val manager = GreatManager(awesomeWorker)
15+
16+
// WHEN
17+
manager.onLogFatalMessageClicked()
18+
19+
// THEN see the logs
20+
}
21+
22+
@Test
23+
fun onLogWarnMessageClicked() {
24+
// GIVEN
25+
val awesomeWorker = AwesomeWorker()
26+
val manager = GreatManager(awesomeWorker)
27+
28+
// WHEN
29+
manager.onLogWarnMessageClicked()
30+
31+
// THEN see the logs
32+
}
33+
34+
@Test
35+
fun onLogDebugMessageClicked() {
36+
// GIVEN
37+
val awesomeWorker = AwesomeWorker()
38+
val manager = GreatManager(awesomeWorker)
39+
40+
// WHEN
41+
manager.onLogDebugMessageClicked()
42+
43+
// THEN see the logs
44+
}
45+
}

examples/app/src/debug/assets/log4j2.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ appender.logcat.layout.pattern = %m%n
1010
appender.logcat.stack-trace-rendering = logcat
1111

1212

13-
logger.lib.name = com.github.neboskreb.lib
13+
logger.lib.name = com.github.neboskreb.log4j2.examples.lib
1414
logger.lib.level = warn
1515

16-
logger.app.name = com.github.neboskreb.app
16+
logger.app.name = com.github.neboskreb.log4j2.examples.app
1717
logger.app.level = debug

examples/app/src/main/java/com/github/neboskreb/log4j2/examples/app/App.java

Lines changed: 0 additions & 17 deletions
This file was deleted.

examples/app/src/main/java/com/github/neboskreb/log4j2/examples/app/GreatManager.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

examples/app/src/main/java/com/github/neboskreb/log4j2/examples/app/MainActivity.java

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.github.neboskreb.log4j2.examples.app
2+
3+
import android.app.Application
4+
import net.loune.log4j2android.AndroidLog4jHelper
5+
6+
class App : Application() {
7+
override fun onCreate() {
8+
super.onCreate()
9+
10+
AndroidLog4jHelper.initialize(applicationContext)
11+
}
12+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.github.neboskreb.log4j2.examples.app
2+
3+
import com.github.neboskreb.log4j2.examples.lib.AwesomeWorker
4+
import org.apache.logging.log4j.LogManager
5+
import org.apache.logging.log4j.Logger
6+
7+
private val log: Logger = LogManager.getLogger(GreatManager::class.java)
8+
9+
/**
10+
* Assume, this Manager uses a Worker to do stuff, and the worker prints messages to the log.
11+
*
12+
* Though you can't change the Worker's source from here, you can perfectly well control what it logs
13+
* from your log4j2.properties, and see the result here.
14+
*/
15+
class GreatManager(
16+
private val worker: AwesomeWorker
17+
) {
18+
fun onLogFatalMessageClicked() {
19+
worker.doGreatJob("Lorem", "Ipsum")
20+
21+
val throwable = Error("WTF (What a Terrible Failure!)")
22+
log.fatal("This is FATAL level message", throwable)
23+
}
24+
25+
fun onLogWarnMessageClicked() {
26+
worker.doGreatJob("Lorem", "Ipsum")
27+
28+
val exception = Exception("Some error which happened elsewhere")
29+
log.warn("This is WARN level message with suppressed exception", exception)
30+
}
31+
32+
fun onLogDebugMessageClicked() {
33+
worker.doNotSoGreatJob()
34+
35+
log.debug("This is DEBUG level message")
36+
}
37+
}

0 commit comments

Comments
 (0)