Deafult JNI log level

This commit is contained in:
M66B 2023-12-30 17:14:02 +01:00
parent 09479f8eb0
commit 6492a7a592
5 changed files with 42 additions and 29 deletions

View File

@ -415,6 +415,7 @@ public class ApplicationEx extends Application
break;
case "debug":
case "log_level":
Log.setLevel(this);
FairEmailLoggingProvider.setLevel(this);
break;
}

View File

@ -5182,10 +5182,6 @@ class Core {
if (EntityFolder.DRAFTS.equals(folder.type))
return null;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
int level = prefs.getInt("log_level", android.util.Log.INFO);
boolean log = (level <= android.util.Log.INFO || BuildConfig.DEBUG);
List<Address> addresses = new ArrayList<>();
if (folder.isOutgoing()) {
if (message.from != null)
@ -5215,44 +5211,40 @@ class Core {
for (Address address : addresses)
for (EntityIdentity identity : identities)
if (identity.sameAddress(address)) {
if (log)
Log.i("Matched same" +
" identity=" + identity.email +
" address=" + ((InternetAddress) address).getAddress() +
" folder=" + folder.name);
Log.i("Matched same" +
" identity=" + identity.email +
" address=" + ((InternetAddress) address).getAddress() +
" folder=" + folder.name);
return identity;
}
for (Address address : addresses)
for (EntityIdentity identity : identities)
if (identity.similarAddress(address)) {
if (log)
Log.i("Matched similar" +
" identity=" + identity.email +
" regex=" + identity.sender_extra_regex +
" address=" + ((InternetAddress) address).getAddress() +
" folder=" + folder.name);
Log.i("Matched similar" +
" identity=" + identity.email +
" regex=" + identity.sender_extra_regex +
" address=" + ((InternetAddress) address).getAddress() +
" folder=" + folder.name);
return identity;
}
if (deliveredto != null)
for (EntityIdentity identity : identities)
if (identity.sameAddress(deliveredto) || identity.similarAddress(deliveredto)) {
if (log)
Log.i("Matched deliveredto" +
" identity=" + identity.email +
" regex=" + identity.sender_extra_regex +
" address=" + ((InternetAddress) deliveredto).getAddress() +
" folder=" + folder.name);
Log.i("Matched deliveredto" +
" identity=" + identity.email +
" regex=" + identity.sender_extra_regex +
" address=" + ((InternetAddress) deliveredto).getAddress() +
" folder=" + folder.name);
return identity;
}
}
if (log)
Log.i("Matched none" +
" addresses=" + MessageHelper.formatAddresses(addresses.toArray(new Address[0])) +
" deliveredto=" + (deliveredto == null ? null : ((InternetAddress) deliveredto).getAddress()) +
" folder=" + folder.name);
Log.i("Matched none" +
" addresses=" + MessageHelper.formatAddresses(addresses.toArray(new Address[0])) +
" deliveredto=" + (deliveredto == null ? null : ((InternetAddress) deliveredto).getAddress()) +
" folder=" + folder.name);
return null;
}

View File

@ -77,8 +77,7 @@ public class FairEmailLoggingProvider extends TinylogLoggingProvider {
if (debug)
provider.activeLevel = Level.DEBUG;
else {
int def = (BuildConfig.DEBUG || BuildConfig.TEST_RELEASE ? android.util.Log.INFO : android.util.Log.WARN);
int _level = prefs.getInt("log_level", def);
int _level = prefs.getInt("log_level", Log.getDefaultLogLevel());
if (_level == android.util.Log.VERBOSE)
provider.activeLevel = Level.TRACE;
else if (_level == android.util.Log.DEBUG)

View File

@ -123,6 +123,8 @@ public class Log {
System.loadLibrary("fairemail");
}
public static native void jni_set_log_level(int level);
public static native long[] jni_safe_runtime_stats();
public static int d(String msg) {
@ -338,9 +340,20 @@ public class Log {
static void setup(Context context) {
ctx = context;
setLevel(context);
setupBugsnag(context);
}
static void setLevel(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
int level = prefs.getInt("log_level", getDefaultLogLevel());
jni_set_log_level(level);
}
static int getDefaultLogLevel() {
return (BuildConfig.DEBUG || BuildConfig.TEST_RELEASE ? android.util.Log.INFO : android.util.Log.WARN);
}
private static void setupBugsnag(final Context context) {
try {
Log.i("Configuring Bugsnag");

View File

@ -12,8 +12,16 @@
#include "compact_enc_det/compact_enc_det.h"
#include "cld_3/src/nnet_language_identifier.h"
int log_level = ANDROID_LOG_DEBUG;
extern "C"
JNIEXPORT void JNICALL
Java_eu_faircode_email_Log_jni_1set_1log_1level(JNIEnv *env, jclass clazz, jint level) {
log_level = level;
}
void log_android(int prio, const char *fmt, ...) {
if (prio >= ANDROID_LOG_DEBUG) {
if (prio >= log_level) {
char line[1024];
va_list argptr;
va_start(argptr, fmt);