Added log level debug option

pull/194/head
M66B 4 years ago
parent 674db36f2c
commit bee33fcf9f

@ -200,6 +200,10 @@ public class ApplicationEx extends Application
// Should be excluded for import
restart();
break;
case "debug":
case "log_level":
Log.setLevel(this);
break;
}
}

@ -577,8 +577,10 @@ public class EmailService implements AutoCloseable {
if (!line.endsWith("ignoring socket timeout"))
if (log)
EntityLog.log(context, user + " " + line);
else
android.util.Log.i("javamail", user + " " + line);
else {
if (BuildConfig.DEBUG)
Log.i("javamail", user + " " + line);
}
bos.reset();
} else
bos.write(b);

@ -110,6 +110,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
private SwitchCompat swProtocol;
private SwitchCompat swDebug;
private SwitchCompat swInfo;
private SwitchCompat swExpunge;
private SwitchCompat swAuthPlain;
private SwitchCompat swAuthLogin;
@ -135,7 +136,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
"classification", "class_min_probability", "class_min_difference",
"language", "watchdog", "updates",
"experiments", "wal", "query_threads", "crash_reports", "cleanup_attachments",
"protocol", "debug", "perform_expunge", "auth_plain", "auth_login", "auth_ntlm", "auth_sasl"
"protocol", "debug", "log_level", "perform_expunge", "auth_plain", "auth_login", "auth_ntlm", "auth_sasl"
};
private final static String[] RESET_QUESTIONS = new String[]{
@ -206,6 +207,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
swProtocol = view.findViewById(R.id.swProtocol);
swDebug = view.findViewById(R.id.swDebug);
swInfo = view.findViewById(R.id.swInfo);
swExpunge = view.findViewById(R.id.swExpunge);
swAuthPlain = view.findViewById(R.id.swAuthPlain);
swAuthLogin = view.findViewById(R.id.swAuthLogin);
@ -471,11 +473,17 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("debug", checked).apply();
Log.setDebug(checked);
grpDebug.setVisibility(checked || BuildConfig.DEBUG ? View.VISIBLE : View.GONE);
}
});
swInfo.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putInt("log_level", checked ? android.util.Log.INFO : android.util.Log.WARN).apply();
}
});
swProtocol.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
@ -868,6 +876,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
swProtocol.setChecked(prefs.getBoolean("protocol", false));
swDebug.setChecked(prefs.getBoolean("debug", false));
swInfo.setChecked(prefs.getInt("log_level", Log.getDefaultLogLevel()) <= android.util.Log.INFO);
swExpunge.setChecked(prefs.getBoolean("perform_expunge", true));
swAuthPlain.setChecked(prefs.getBoolean("auth_plain", true));
swAuthLogin.setChecked(prefs.getBoolean("auth_login", true));

@ -123,28 +123,52 @@ import javax.net.ssl.SSLPeerUnverifiedException;
import io.requery.android.database.CursorWindowAllocationException;
public class Log {
private static boolean debug = false;
private static int level = android.util.Log.INFO;
private static final int MAX_CRASH_REPORTS = 5;
private static final String TAG = "fairemail";
public static void setDebug(boolean value) {
debug = value;
public static void setLevel(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean debug = prefs.getBoolean("debug", false);
if (debug)
level = android.util.Log.DEBUG;
else
level = prefs.getInt("log_level", getDefaultLogLevel());
android.util.Log.d(TAG, "Log level=" + level);
}
public static int getDefaultLogLevel() {
return (BuildConfig.DEBUG ? android.util.Log.INFO : android.util.Log.WARN);
}
public static int d(String msg) {
if (debug)
if (level <= android.util.Log.DEBUG)
return android.util.Log.d(TAG, msg);
else
return 0;
}
public static int d(String tag, String msg) {
if (level <= android.util.Log.DEBUG)
return android.util.Log.d(tag, msg);
else
return 0;
}
public static int i(String msg) {
if (BuildConfig.BETA_RELEASE)
if (level <= android.util.Log.INFO)
return android.util.Log.i(TAG, msg);
else
return 0;
}
public static int i(String tag, String msg) {
if (level <= android.util.Log.INFO)
return android.util.Log.i(tag, msg);
else
return 0;
}
public static int w(String msg) {
return android.util.Log.w(TAG, msg);
}
@ -262,9 +286,7 @@ public class Log {
}
static void setup(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
debug = prefs.getBoolean("debug", false);
setLevel(context);
setupBugsnag(context);
}

@ -506,6 +506,17 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swDebug" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swInfo"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_advanced_log_level"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvDebugHint"
app:switchPadding="12dp" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swExpunge"
android:layout_width="0dp"
@ -515,7 +526,7 @@
android:text="@string/title_advanced_expunge"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvDebugHint"
app:layout_constraintTop_toBottomOf="@id/swInfo"
app:switchPadding="12dp" />
<androidx.appcompat.widget.SwitchCompat
@ -653,6 +664,6 @@
android:id="@+id/grpDebug"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="swExpunge,swAuthPlain,swAuthLogin,swAuthNtlm,swAuthSasl,tvProcessors,tvMemoryClass,tvMemoryUsage,tvStorageUsage,tvFingerprint,btnCharsets,btnCiphers,btnFiles" />
app:constraint_referenced_ids="swInfo,swExpunge,swAuthPlain,swAuthLogin,swAuthNtlm,swAuthSasl,tvProcessors,tvMemoryClass,tvMemoryUsage,tvStorageUsage,tvFingerprint,btnCharsets,btnCiphers,btnFiles" />
</androidx.constraintlayout.widget.ConstraintLayout>
</eu.faircode.email.ScrollViewEx>

@ -537,6 +537,7 @@
<string name="title_advanced_crash_reports">Send error reports</string>
<string name="title_advanced_protocol">Protocol logging</string>
<string name="title_advanced_debug">Debug mode</string>
<string name="title_advanced_log_level" translatable="false">Log info (debug only)</string>
<string name="title_advanced_cleanup_attachments">Delete attachments of old messages</string>
<string name="title_advanced_cleanup">Cleanup</string>
<string name="title_advanced_last_cleanup">Last cleanup: %1$s</string>

Loading…
Cancel
Save