Skip to content

Commit 573f616

Browse files
authored
Version 1.3.0
2 parents 42e7050 + 869972a commit 573f616

File tree

46 files changed

+566
-380
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+566
-380
lines changed

app/android/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ def patch = 0
1212

1313
def vName = versions.logger.pkg + patch
1414
android {
15+
namespace "br.dev.dig.logger.app.android"
1516
compileSdk versions.android.compile
1617

1718
defaultConfig {

app/android/src/main/AndroidManifest.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="br.dev.dig.logger.app.android">
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
43

54
<application
65
android:allowBackup="true"

build.gradle

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,15 @@ buildscript {
4141
"java" : JavaVersion.VERSION_1_8,
4242
"logger" : [
4343
"major": "1",
44-
"minor": "2",
44+
"minor": "3",
4545
"pkg" : "",
4646
],
4747
"android": [
4848
"minimum": 21,
49-
"compile": 31,
50-
"target" : 31,
49+
"compile": 33,
50+
"target" : 33,
5151
],
52-
"kotlin" : "1.5.31",
52+
"kotlin" : "1.8.10",
5353
"junit" : "5.8.2",
5454
"mockito": "4.4.0",
5555
]
@@ -68,19 +68,6 @@ buildscript {
6868
],
6969
]
7070
]
71-
repositories {
72-
mavenCentral()
73-
google()
74-
}
75-
dependencies {
76-
if (isAndroidEnabled) {
77-
classpath "com.android.tools.build:gradle:7.1.3"
78-
classpath "de.mannodermaus.gradle.plugins:android-junit5:1.8.2.0"
79-
classpath "com.google.gms:google-services:4.3.10"
80-
classpath "com.google.firebase:firebase-crashlytics-gradle:2.8.1"
81-
}
82-
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}"
83-
}
8471
allprojects {
8572
repositories {
8673
mavenCentral()
@@ -89,6 +76,15 @@ buildscript {
8976
}
9077
}
9178

79+
plugins {
80+
id "org.jetbrains.kotlin.jvm" version "1.8.10" apply false
81+
id "org.jetbrains.kotlin.android" version "1.8.10" apply false
82+
id "com.android.application" version "7.3.1" apply false
83+
id "com.google.gms.google-services" version "4.3.13" apply false
84+
id "com.google.firebase.crashlytics" version "2.9.2" apply false
85+
id "de.mannodermaus.android-junit5" version "1.8.2.0" apply false
86+
}
87+
9288
Pattern regex = Pattern.compile("'([a-zA-Z0-9\\-_:]+)'")
9389

9490
task deploy_ToLocal {

changelog.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
Changelog
22
=========
3+
1.3.0
4+
-----
5+
- Upgraded kotlin version
6+
- Better method to cascade tag
7+
- More filter options: Allowed/Blocked Throwable
8+
- Fix StreamLogger write method
9+
- Removed Deprecated PrintlnFormatter
10+
311
1.2.1-logger
412
-----
513
- Default log tag can be changed

filter-ktx/src/main/java/br/dev/dig/logger/FilterLoggerExtensions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import br.dev.dig.logger.builder.LoggerBuilder
44
import br.dev.dig.logger.filter.FilterLogger
55

66
@Suppress("unused", "FunctionName")
7-
inline fun LoggerBuilder.FilterLogger(crossinline config: FilterLogger.Builder.() -> Unit): FilterLogger {
7+
inline fun LoggerBuilder.FilterLogger(crossinline config: FilterLogger.Builder.() -> Unit): BaseLogger {
88
val builder = FilterLogger.Builder()
99
config(builder)
1010
return builder.build()

filter/src/main/java/br/dev/dig/logger/filter/FilterLogger.java

Lines changed: 94 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,29 @@
33
import org.jetbrains.annotations.NotNull;
44
import org.jetbrains.annotations.Nullable;
55

6-
import java.security.InvalidParameterException;
6+
import java.util.Collection;
7+
import java.util.Collections;
8+
import java.util.HashSet;
9+
import java.util.Set;
710

811
import br.dev.dig.logger.BaseLogger;
9-
import br.dev.dig.logger.Logger;
1012
import br.dev.dig.logger.intrinsics.Intrinsics;
1113

12-
public final class FilterLogger implements BaseLogger {
13-
@NotNull
14-
final BaseLogger target;
15-
final int level;
16-
17-
public FilterLogger(int minimum, @NotNull final BaseLogger target) {
18-
if (minimum < Logger.LEVEL_VERBOSE || minimum > Logger.LEVEL_NONE) {
19-
throw new InvalidParameterException("Minimum must be between `Logger.LEVEL_VERBOSE` and `Logger.LEVEL_NONE`.");
20-
}
21-
this.level = minimum;
22-
this.target = Intrinsics.parameterNotNull(target, "Target BaseLogger must not be null");
14+
public final class FilterLogger {
15+
private FilterLogger() {
16+
throw new RuntimeException("Can not instantiate this class");
2317
}
2418

2519
@SuppressWarnings("unused")
2620
public static class Builder {
2721
@Nullable
2822
BaseLogger target;
29-
int level = Logger.LEVEL_NONE;
23+
@Nullable
24+
Integer level = null;
25+
@Nullable
26+
Set<Class<? extends Throwable>> allowed;
27+
@Nullable
28+
Set<Class<? extends Throwable>> blocked;
3029

3130
public Builder() {
3231
}
@@ -36,41 +35,104 @@ public Builder(@NotNull final BaseLogger target) {
3635
}
3736

3837
@Nullable
39-
public BaseLogger getTarget() {
38+
public final BaseLogger getTarget() {
4039
return target;
4140
}
4241

43-
public Builder setTarget(@NotNull final BaseLogger target) {
42+
@NotNull
43+
public final Builder setTarget(@NotNull final BaseLogger target) {
4444
this.target = target;
4545
return this;
4646
}
4747

48-
public int getLevel() {
48+
@Nullable
49+
public final Integer getLevel() {
4950
return level;
5051
}
5152

52-
public Builder setLevel(final int level) {
53+
@NotNull
54+
public final Builder setLevel(final int level) {
5355
this.level = level;
5456
return this;
5557
}
5658

57-
@SuppressWarnings("ConstantConditions")
58-
public FilterLogger build() {
59-
return new FilterLogger(level, target);
59+
@Nullable
60+
public final Set<Class<? extends Throwable>> getAllowed() {
61+
return allowed;
6062
}
61-
}
6263

63-
@Override
64-
public void log(int level, @Nullable final String tag, @NotNull final Message message, @Nullable final Throwable throwable) {
65-
if (level >= this.level) {
66-
target.log(level, tag, message, throwable);
64+
@NotNull
65+
public final Builder setAllowed(@Nullable final Collection<Class<? extends Throwable>> allowed) {
66+
if (allowed == null) {
67+
this.allowed = null;
68+
} else {
69+
this.allowed = new HashSet<>(allowed);
70+
}
71+
return this;
72+
}
73+
74+
@SafeVarargs
75+
public final Builder setAllowed(@NotNull final Class<? extends Throwable>... allowed) {
76+
this.allowed = new HashSet<>();
77+
Collections.addAll(this.allowed, allowed);
78+
return this;
79+
}
80+
81+
@SafeVarargs
82+
public final Builder addAllowed(@NotNull final Class<? extends Throwable>... allowed) {
83+
if (this.allowed == null) {
84+
this.allowed = new HashSet<>();
85+
}
86+
Collections.addAll(this.allowed, allowed);
87+
return this;
88+
}
89+
90+
@Nullable
91+
public final Set<Class<? extends Throwable>> getBlocked() {
92+
return blocked;
6793
}
68-
}
6994

70-
@Override
71-
public void log(int level, @Nullable final String tag, @Nullable final CharSequence message, @Nullable final Throwable throwable) {
72-
if (level >= this.level) {
73-
target.log(level, tag, message, throwable);
95+
96+
@NotNull
97+
public final Builder setBlocked(@Nullable final Collection<Class<? extends Throwable>> blocked) {
98+
if (blocked == null) {
99+
this.blocked = null;
100+
} else {
101+
this.blocked = new HashSet<>(blocked);
102+
}
103+
return this;
104+
}
105+
106+
@SafeVarargs
107+
public final Builder setBlocked(@NotNull final Class<? extends Throwable>... blocked) {
108+
this.blocked = new HashSet<>();
109+
Collections.addAll(this.blocked, blocked);
110+
return this;
111+
}
112+
113+
@SafeVarargs
114+
public final Builder addBlocked(@NotNull final Class<? extends Throwable>... blocked) {
115+
if (this.blocked == null) {
116+
this.blocked = new HashSet<>();
117+
}
118+
Collections.addAll(this.blocked, blocked);
119+
return this;
120+
}
121+
122+
@NotNull
123+
public final BaseLogger build() {
124+
BaseLogger previous = Intrinsics.parameterNotNull(target, "Can not build without target BaseLogger");
125+
if (allowed != null) {
126+
previous = new FilterLoggerByAllowedThrowable(previous, allowed);
127+
}
128+
if (blocked != null) {
129+
previous = new FilterLoggerByBlockedThrowable(previous, blocked);
130+
}
131+
if (level != null) {
132+
previous = new FilterLoggerByLevel(level, previous);
133+
}
134+
return previous;
74135
}
75136
}
76-
}
137+
138+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package br.dev.dig.logger.filter;
2+
3+
import org.jetbrains.annotations.NotNull;
4+
import org.jetbrains.annotations.Nullable;
5+
6+
import java.util.Set;
7+
8+
import br.dev.dig.logger.BaseLogger;
9+
10+
class FilterLoggerByAllowedThrowable implements BaseLogger {
11+
12+
@NotNull
13+
final BaseLogger target;
14+
@NotNull
15+
final Set<Class<? extends Throwable>> allowed;
16+
17+
FilterLoggerByAllowedThrowable(@NotNull final BaseLogger target, @NotNull final Set<Class<? extends Throwable>> allowed) {
18+
this.target = target;
19+
this.allowed = allowed;
20+
}
21+
22+
@Override
23+
public void log(int level, @Nullable final String tag, @NotNull final Message message, @Nullable final Throwable throwable) {
24+
if (throwable != null) {
25+
for (Class<? extends Throwable> blocked : this.allowed) {
26+
if (blocked.isInstance(throwable)) {
27+
target.log(level, tag, message, throwable);
28+
return;
29+
}
30+
}
31+
} else {
32+
target.log(level, tag, message, null);
33+
}
34+
}
35+
36+
@Override
37+
public void log(int level, @Nullable final String tag, @Nullable final CharSequence message, @Nullable final Throwable throwable) {
38+
if (throwable != null) {
39+
for (Class<? extends Throwable> blocked : this.allowed) {
40+
if (blocked.isInstance(throwable)) {
41+
target.log(level, tag, message, throwable);
42+
return;
43+
}
44+
}
45+
} else {
46+
target.log(level, tag, message, null);
47+
}
48+
}
49+
50+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package br.dev.dig.logger.filter;
2+
3+
import org.jetbrains.annotations.NotNull;
4+
import org.jetbrains.annotations.Nullable;
5+
6+
import java.util.Set;
7+
8+
import br.dev.dig.logger.BaseLogger;
9+
10+
class FilterLoggerByBlockedThrowable implements BaseLogger {
11+
12+
@NotNull
13+
final BaseLogger target;
14+
@NotNull
15+
final Set<Class<? extends Throwable>> blocked;
16+
17+
FilterLoggerByBlockedThrowable(@NotNull final BaseLogger target, @NotNull final Set<Class<? extends Throwable>> blocked) {
18+
this.target = target;
19+
this.blocked = blocked;
20+
}
21+
22+
@Override
23+
public void log(int level, @Nullable final String tag, @NotNull final Message message, @Nullable final Throwable throwable) {
24+
if (throwable != null) {
25+
for (Class<? extends Throwable> blocked : this.blocked) {
26+
if (blocked.isInstance(throwable)) {
27+
return;
28+
}
29+
}
30+
}
31+
target.log(level, tag, message, throwable);
32+
}
33+
34+
@Override
35+
public void log(int level, @Nullable final String tag, @Nullable final CharSequence message, @Nullable final Throwable throwable) {
36+
if (throwable != null) {
37+
for (Class<? extends Throwable> blocked : this.blocked) {
38+
if (blocked.isInstance(throwable)) {
39+
return;
40+
}
41+
}
42+
}
43+
target.log(level, tag, message, throwable);
44+
}
45+
46+
}

0 commit comments

Comments
 (0)