Add the ability to increase log lifespan.

This commit is contained in:
Greyson Parrelli
2021-07-20 09:57:17 -04:00
parent 7419da7247
commit 0093e1d3eb
15 changed files with 254 additions and 126 deletions

View File

@@ -5,36 +5,35 @@ import android.annotation.SuppressLint;
@SuppressLint("LogNotSignal")
public final class AndroidLogger extends Log.Logger {
public AndroidLogger() {
super(0);
}
@Override
public void v(String tag, String message, Throwable t) {
public void v(String tag, String message, Throwable t, long lifespan) {
android.util.Log.v(tag, message, t);
}
@Override
public void d(String tag, String message, Throwable t) {
public void d(String tag, String message, Throwable t, long lifespan) {
android.util.Log.d(tag, message, t);
}
@Override
public void i(String tag, String message, Throwable t) {
public void i(String tag, String message, Throwable t, long lifespan) {
android.util.Log.i(tag, message, t);
}
@Override
public void w(String tag, String message, Throwable t) {
public void w(String tag, String message, Throwable t, long lifespan) {
android.util.Log.w(tag, message, t);
}
@Override
public void e(String tag, String message, Throwable t) {
public void e(String tag, String message, Throwable t, long lifespan) {
android.util.Log.e(tag, message, t);
}
@Override
public void wtf(String tag, String message, Throwable t) {
android.util.Log.wtf(tag, message, t);
}
@Override
public void flush() {
}

View File

@@ -11,48 +11,112 @@ class CompoundLogger extends Log.Logger {
private final Log.Logger[] loggers;
CompoundLogger(@NonNull Log.Logger... loggers) {
super(0);
this.loggers = loggers;
}
@Override
public void v(String tag, String message, Throwable t) {
public void v(String tag, String message, Throwable t, long duration) {
for (Log.Logger logger : loggers) {
logger.v(tag, message, t, duration);
}
}
@Override
public void d(String tag, String message, Throwable t, long duration) {
for (Log.Logger logger : loggers) {
logger.d(tag, message, t, duration);
}
}
@Override
public void i(String tag, String message, Throwable t, long duration) {
for (Log.Logger logger : loggers) {
logger.i(tag, message, t, duration);
}
}
@Override
public void w(String tag, String message, Throwable t, long duration) {
for (Log.Logger logger : loggers) {
logger.w(tag, message, t, duration);
}
}
@Override
public void e(String tag, String message, Throwable t, long duration) {
for (Log.Logger logger : loggers) {
logger.e(tag, message, t, duration);
}
}
@Override
public void v(String tag, String message, Throwable t) {
for (Log.Logger logger :loggers) {
logger.v(tag, message, t);
}
}
@Override
public void d(String tag, String message, Throwable t) {
for (Log.Logger logger : loggers) {
for (Log.Logger logger :loggers) {
logger.d(tag, message, t);
}
}
@Override
public void i(String tag, String message, Throwable t) {
for (Log.Logger logger : loggers) {
for (Log.Logger logger :loggers) {
logger.i(tag, message, t);
}
}
@Override
public void w(String tag, String message, Throwable t) {
for (Log.Logger logger : loggers) {
for (Log.Logger logger :loggers) {
logger.w(tag, message, t);
}
}
@Override
public void e(String tag, String message, Throwable t) {
for (Log.Logger logger : loggers) {
for (Log.Logger logger :loggers) {
logger.e(tag, message, t);
}
}
@Override
public void wtf(String tag, String message, Throwable t) {
for (Log.Logger logger : loggers) {
logger.wtf(tag, message, t);
public void v(String tag, String message) {
for (Log.Logger logger :loggers) {
logger.v(tag, message);
}
}
@Override
public void d(String tag, String message) {
for (Log.Logger logger :loggers) {
logger.d(tag, message);
}
}
@Override
public void i(String tag, String message) {
for (Log.Logger logger :loggers) {
logger.i(tag, message);
}
}
@Override
public void w(String tag, String message) {
for (Log.Logger logger :loggers) {
logger.w(tag, message);
}
}
@Override
public void e(String tag, String message) {
for (Log.Logger logger :loggers) {
logger.e(tag, message);
}
}

View File

@@ -47,10 +47,6 @@ public final class Log {
e(tag, message, null);
}
public static void wtf(String tag, String message) {
wtf(tag, message, null);
}
public static void v(String tag, Throwable t) {
v(tag, null, t);
}
@@ -71,10 +67,6 @@ public final class Log {
e(tag, null, t);
}
public static void wtf(String tag, Throwable t) {
wtf(tag, null, t);
}
public static void v(String tag, String message, Throwable t) {
logger.v(tag, message, t);
}
@@ -95,8 +87,44 @@ public final class Log {
logger.e(tag, message, t);
}
public static void wtf(String tag, String message, Throwable t) {
logger.wtf(tag, message, t);
public static void v(String tag, String message, long duration) {
logger.v(tag, message, duration);
}
public static void d(String tag, String message, long duration) {
logger.d(tag, message, duration);
}
public static void i(String tag, String message, long duration) {
logger.i(tag, message, duration);
}
public static void w(String tag, String message, long duration) {
logger.w(tag, message, duration);
}
public static void e(String tag, String message, long duration) {
logger.e(tag, message, duration);
}
public static void v(String tag, String message, Throwable t, long duration) {
logger.v(tag, message, t, duration);
}
public static void d(String tag, String message, Throwable t, long duration) {
logger.d(tag, message, t, duration);
}
public static void i(String tag, String message, Throwable t, long duration) {
logger.i(tag, message, t, duration);
}
public static void w(String tag, String message, Throwable t, long duration) {
logger.w(tag, message, t, duration);
}
public static void e(String tag, String message, Throwable t, long duration) {
logger.e(tag, message, t, duration);
}
public static String tag(Class<?> clazz) {
@@ -126,14 +154,60 @@ public final class Log {
}
public static abstract class Logger {
public abstract void v(String tag, String message, Throwable t);
public abstract void d(String tag, String message, Throwable t);
public abstract void i(String tag, String message, Throwable t);
public abstract void w(String tag, String message, Throwable t);
public abstract void e(String tag, String message, Throwable t);
public abstract void wtf(String tag, String message, Throwable t);
private final long defaultLifespan;
protected Logger(long defaultLifespan) {
this.defaultLifespan = defaultLifespan;
}
public abstract void v(String tag, String message, Throwable t, long lifespan);
public abstract void d(String tag, String message, Throwable t, long lifespan);
public abstract void i(String tag, String message, Throwable t, long lifespan);
public abstract void w(String tag, String message, Throwable t, long lifespan);
public abstract void e(String tag, String message, Throwable t, long lifespan);
public abstract void flush();
public void v(String tag, String message, long lifespan) {
v(tag, message, null, lifespan);
}
public void d(String tag, String message, long lifespan) {
d(tag, message, null, lifespan);
}
public void i(String tag, String message, long lifespan) {
i(tag, message, null, lifespan);
}
public void w(String tag, String message, long lifespan) {
w(tag, message, null, lifespan);
}
public void e(String tag, String message, long lifespan) {
e(tag, message, null, lifespan);
}
public void v(String tag, String message, Throwable t) {
v(tag, message, t, defaultLifespan);
}
public void d(String tag, String message, Throwable t) {
d(tag, message, t, defaultLifespan);
}
public void i(String tag, String message, Throwable t) {
i(tag, message, t, defaultLifespan);
}
public void w(String tag, String message, Throwable t) {
w(tag, message, t, defaultLifespan);
}
public void e(String tag, String message, Throwable t) {
e(tag, message, t, defaultLifespan);
}
public void v(String tag, String message) {
v(tag, message, null);
}
@@ -153,10 +227,6 @@ public final class Log {
public void e(String tag, String message) {
e(tag, message, null);
}
public void wtf(String tag, String message) {
wtf(tag, message, null);
}
}
public interface InternalCheck {

View File

@@ -4,23 +4,24 @@ package org.signal.core.util.logging;
* A logger that does nothing.
*/
class NoopLogger extends Log.Logger {
@Override
public void v(String tag, String message, Throwable t) { }
NoopLogger() {
super(0);
}
@Override
public void d(String tag, String message, Throwable t) { }
public void v(String tag, String message, Throwable t, long duration) { }
@Override
public void i(String tag, String message, Throwable t) { }
public void d(String tag, String message, Throwable t, long duration) { }
@Override
public void w(String tag, String message, Throwable t) { }
public void i(String tag, String message, Throwable t, long duration) { }
@Override
public void e(String tag, String message, Throwable t) { }
public void w(String tag, String message, Throwable t, long duration) { }
@Override
public void wtf(String tag, String message, Throwable t) { }
public void e(String tag, String message, Throwable t, long duration) { }
@Override
public void flush() { }