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.

App Log:
--------- 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?
 

Alex_197

Well-Known Member
Licensed User
Longtime User
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

MikeSW17

Active Member
Licensed User
Longtime User
Looks like you can Trim the Log file so you only get 'recent' data.

From: Send Log by email example:

B4X:
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
Top