mirror of
https://github.com/TonyJiangWJ/Auto.js.git
synced 2026-06-24 21:33:16 +08:00
增加Log4j配置 将日志打印到.logs目录下 避免崩溃后日志丢失无法分析问题
This commit is contained in:
parent
d522fb4b22
commit
c5ff927864
@ -24,7 +24,6 @@ import org.autojs.autojs.Pref;
|
||||
import org.autojs.autojs.R;
|
||||
import org.autojs.autojs.external.fileprovider.AppFileProvider;
|
||||
import org.autojs.autojs.pluginclient.DevPluginService;
|
||||
import org.autojs.autojs.timing.work.WorkProviderConstants;
|
||||
import org.autojs.autojs.ui.floating.FloatyWindowManger;
|
||||
import org.autojs.autojs.ui.floating.FullScreenFloatyWindow;
|
||||
import org.autojs.autojs.ui.floating.layoutinspector.LayoutBoundsFloatyWindow;
|
||||
@ -93,6 +92,7 @@ public class AutoJs extends com.stardust.autojs.AutoJs {
|
||||
LocalBroadcastManager.getInstance(application).registerReceiver(mLayoutInspectBroadcastReceiver, intentFilter);
|
||||
this.enableDebugLog = PreferenceManager.getDefaultSharedPreferences(GlobalAppContext.get())
|
||||
.getBoolean(GlobalAppContext.getString(R.string.key_enable_debug_log), false);
|
||||
setLogFilePath(Pref.getScriptDirPath());
|
||||
}
|
||||
|
||||
private void capture(LayoutInspectFloatyWindow window) {
|
||||
|
||||
@ -123,9 +123,9 @@ public class TimedTaskScheduler {
|
||||
|
||||
public static WorkProvider getWorkProvider(Context context) {
|
||||
try {
|
||||
PreferenceManager.getDefaultSharedPreferences(context).getString(WorkProviderConstants.ACTIVE_PROVIDER, WorkProviderConstants.WORK_MANAGER_PROVIDER);
|
||||
PreferenceManager.getDefaultSharedPreferences(context).getString(WorkProviderConstants.ACTIVE_PROVIDER, WorkProviderConstants.ALARM_MANAGER_PROVIDER);
|
||||
} catch (Exception e) {
|
||||
PreferenceManager.getDefaultSharedPreferences(context).edit().putString(WorkProviderConstants.ACTIVE_PROVIDER, WorkProviderConstants.WORK_MANAGER_PROVIDER).apply();
|
||||
PreferenceManager.getDefaultSharedPreferences(context).edit().putString(WorkProviderConstants.ACTIVE_PROVIDER, WorkProviderConstants.ALARM_MANAGER_PROVIDER).apply();
|
||||
}
|
||||
String currentActive = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
.getString(WorkProviderConstants.ACTIVE_PROVIDER, WorkProviderConstants.WORK_MANAGER_PROVIDER);
|
||||
|
||||
@ -12,9 +12,11 @@ import android.util.Log;
|
||||
|
||||
import com.stardust.app.GlobalAppContext;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.autojs.autojs.BuildConfig;
|
||||
import org.mozilla.javascript.RhinoException;
|
||||
|
||||
|
||||
import com.stardust.view.accessibility.AccessibilityService;
|
||||
import com.tencent.bugly.crashreport.BuglyLog;
|
||||
import com.tencent.bugly.crashreport.CrashReport;
|
||||
@ -24,6 +26,7 @@ import java.util.Map;
|
||||
|
||||
public class CrashHandler extends CrashReport.CrashHandleCallback implements UncaughtExceptionHandler {
|
||||
private static final String TAG = "CrashHandler";
|
||||
private static final Logger logger = Logger.getLogger(CrashHandler.class);
|
||||
private static int crashCount = 0;
|
||||
private static long firstCrashMillis = 0;
|
||||
private final Class<?> mErrorReportClass;
|
||||
@ -72,6 +75,7 @@ public class CrashHandler extends CrashReport.CrashHandleCallback implements Unc
|
||||
String msg = errorType + ": " + errorMessage;
|
||||
startErrorReportActivity(msg, errorStack);
|
||||
} catch (Throwable throwable) {
|
||||
logger.error("崩溃了:", throwable);
|
||||
throwable.printStackTrace();
|
||||
}
|
||||
return super.onCrashHandleStart(crashType, errorType, errorMessage, errorStack);
|
||||
|
||||
@ -6,14 +6,12 @@ import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
import com.stardust.app.OnActivityResultDelegate;
|
||||
import com.stardust.app.SimpleActivityLifecycleCallbacks;
|
||||
import com.stardust.autojs.core.accessibility.AccessibilityBridge;
|
||||
import com.stardust.autojs.core.console.GlobalConsole;
|
||||
import com.stardust.autojs.core.activity.ActivityInfoProvider;
|
||||
import com.stardust.autojs.core.console.ConsoleImpl;
|
||||
import com.stardust.autojs.core.console.GlobalConsole;
|
||||
import com.stardust.autojs.core.image.capture.ScreenCaptureRequestActivity;
|
||||
import com.stardust.autojs.core.image.capture.ScreenCaptureRequester;
|
||||
import com.stardust.autojs.core.record.accessibility.AccessibilityActionRecorder;
|
||||
@ -30,7 +28,6 @@ import com.stardust.autojs.script.JavaScriptSource;
|
||||
import com.stardust.util.ResourceMonitor;
|
||||
import com.stardust.util.ScreenMetrics;
|
||||
import com.stardust.util.UiHandler;
|
||||
import com.stardust.autojs.core.activity.ActivityInfoProvider;
|
||||
import com.stardust.view.accessibility.AccessibilityNotificationObserver;
|
||||
import com.stardust.view.accessibility.AccessibilityService;
|
||||
import com.stardust.view.accessibility.LayoutInspector;
|
||||
@ -40,6 +37,10 @@ import org.mozilla.javascript.WrappedException;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import de.mindpipe.android.logging.log4j.LogConfigurator;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/11/29.
|
||||
*/
|
||||
@ -265,4 +266,14 @@ public abstract class AutoJs {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void setLogFilePath(String path) {
|
||||
LogConfigurator logConfigurator = new LogConfigurator();
|
||||
String pid = String.valueOf(android.os.Process.myPid());
|
||||
logConfigurator.setFilePattern("%d - [%p]\t[" + pid + "] %c - %m%n");
|
||||
logConfigurator.setFileName(path + "/.logs/autojs-log4j" + (BuildConfig.DEBUG ? "-debug" : "") + ".txt");
|
||||
// 设置最大10MB
|
||||
logConfigurator.setMaxFileSize(10 * 1024 * 1024);
|
||||
logConfigurator.configure();
|
||||
}
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@ public class GlobalConsole extends ConsoleImpl {
|
||||
String log = String.format(Locale.getDefault(), "%s/%s: %s",
|
||||
DATE_FORMAT.format(new Date()), getLevelChar(level), charSequence.toString());
|
||||
LOGGER.log(toLog4jLevel(level), log);
|
||||
android.util.Log.d(LOG_tAG, log);
|
||||
// android.util.Log.d(LOG_tAG, log);
|
||||
super.println(level, log);
|
||||
return log;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user