Android Question How to clean application log?

Alex_197

Well-Known Member
Licensed User
Longtime User
Hi all.

I tried to play with this example Uncaught Exceptions and what I found is that if I run this example multiple times the log keeps entries from the previous runs.

Let say I started this app on 10/17/2020 at 10:36:43 AM.

Then on 10/17/2020 at 10:53:42 AM.

Code: Copy
--------- beginning of crash
--------- beginning of system
--------- beginning of main
~i:*** Service (starter) Create ***
~i:** Service (starter) Start **
~i:** Activity (main) Create, isFirst = true **
~i:** Activity (main) Resume **
~l14196609:Current time: 10:36:43
~l24196609:Current time: 10:36:44
~l34196609:Current time: 10:36:45
~l44196609:Current time: 10:36:46
~l54196609:Current time: 10:36:47
~l64262145:Trying to set 'i'...
~e:main_button1_click (java line: 366)
~e:java.lang.NumberFormatException: For input string: "fdgdfg"
~e: at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
~e: at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
~e: at java.lang.Double.parseDouble(Double.java:538)
~e: at b4a.example.main._button1_click(main.java:366)
~e: at java.lang.reflect.Method.invoke(Native Method)
~e: at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
~e: at anywheresoftware.b4a.BA.raiseEvent2(BA.java:197)
~e: at anywheresoftware.b4a.BA.raiseEvent(BA.java:193)
~e: at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:80)
~e: at android.view.View.performClick(View.java:7288)
~e: at android.view.View.performClickInternal(View.java:7258)
~e: at android.view.View.access$4000(View.java:808)
~e: at android.view.View$PerformClick.run(View.java:28019)
~e: at android.os.Handler.handleCallback(Handler.java:883)
~e: at android.os.Handler.dispatchMessage(Handler.java:100)
~e: at android.os.Looper.loop(Looper.java:214)
~e: at android.app.ActivityThread.main(ActivityThread.java:7615)
~e: at java.lang.reflect.Method.invoke(Native Method)
~e: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
~e: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
~i:*** Service (starter) Create ***
~i:** Service (starter) Start **
~i:** Activity (main) Create, isFirst = true **
~i:** Activity (main) Resume **
~l14196609:Current time: 10:53:42
~l24196609:Current time: 10:53:43
~l34196609:Current time: 10:53:44
~l44196609:Current time: 10:53:45
~l54262145:Trying to set 'i'...
~e:main_button1_click (java line: 366)
~e:java.lang.NumberFormatException: For input string: "fdgdfg"
~e: at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
~e: at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
~e: at java.lang.Double.parseDouble(Double.java:538)
~e: at b4a.example.main._button1_click(main.java:366)
~e: at java.lang.reflect.Method.invoke(Native Method)
~e: at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
~e: at anywheresoftware.b4a.BA.raiseEvent2(BA.java:197)
~e: at anywheresoftware.b4a.BA.raiseEvent(BA.java:193)
~e: at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:80)
~e: at android.view.View.performClick(View.java:7288)
~e: at android.view.View.performClickInternal(View.java:7258)
~e: at android.view.View.access$4000(View.java:808)
~e: at android.view.View$PerformClick.run(View.java:28019)
~e: at android.os.Handler.handleCallback(Handler.java:883)
~e: at android.os.Handler.dispatchMessage(Handler.java:100)
~e: at android.os.Looper.loop(Looper.java:214)
~e: at android.app.ActivityThread.main(ActivityThread.java:7615)
~e: at java.lang.reflect.Method.invoke(Native Method)
~e: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
~e: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
java.lang.NumberFormatException: For input string: "fdgdfg"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at b4a.example.main._button1_click(main.java:366)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:197)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:193)
at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:80)
at android.view.View.performClick(View.java:7288)
at android.view.View.performClickInternal(View.java:7258)
at android.view.View.access$4000(View.java:808)
at android.view.View$PerformClick.run(View.java:28019)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7615)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)

==========================
java.lang.NumberFormatException: For input string: "fdgdfg"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at b4a.example.main._button1_click(main.java:366)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:197)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:193)
at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:80)
at android.view.View.performClick(View.java:7288)
at android.view.View.performClickInternal(View.java:7258)
at android.view.View.access$4000(View.java:808)
at android.view.View$PerformClick.run(View.java:28019)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7615)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)

But all the info from previous run is still there. How to start the app with clean empty log?
 
If you use usb, you may click 'clear' in ide.
If b4a-bridge, it still shows from phone, AFAIK

Regards,

Anand
No, I mean in release mode. My idea is to collect and send by email the log info on try catch. If the exception is trapped I want to know what the used have done before the error occurred. That's why I want the log to be empty when the app get started.
 
Upvote 0
Looks like you can Trim the Log file so you only get 'recent' data.

From: Send Log by email example:

B4X: Copy
Private Sub logcat_LogCatData (Buffer() As Byte, Length As Int)
    logs.Append(BytesToString(Buffer, 0, Length, "utf8"))
    If logs.Length > 5000 Then
        logs.Remove(0, logs.Length - 4000)
    End If
End Sub
 
Upvote 0
Back
Top