pluscubed / matlog Goto Github PK
View Code? Open in Web Editor NEWMaterial Logcat reader based on CatLog
Home Page: https://play.google.com/store/apps/details?id=com.pluscubed.matlog
License: GNU General Public License v3.0
Material Logcat reader based on CatLog
Home Page: https://play.google.com/store/apps/details?id=com.pluscubed.matlog
License: GNU General Public License v3.0
Hello,
I have been using Matlog for everyday and I love it very much. But since the update 1.1.1, I have force close issue when choose Search By on Android 4.4. Here is attached logcat of that. Hope you can fix it. Thank you very much!
2017-06-18-13-44-41.txt
Is it possible to have the log that precedes the moment the app is launched?
I have this feature in LogFox and Logcat Reader and am missing it here. Note that their recording services are started at app launch time, and are not running before; I did "Force stop" in the Android settings, to be sure.
My use case is that I am not an Android dev and my stack traces are from new features of F-droid apps. I open the log after the crash (happens circa once a month) and copy-paste straight into GH. I do not take the time to find minimal reproducer steps anyway, as the stack trace is usually clear enough. So if I switched to MatLog, I would open the log after the crash. But I understand that for example, it may be different for a nightly beta tester.
I love MatLog & recommend it to users on XDA & Reddit.
Just some minor comments:
In the MatLog Play Store page & also in the README.md file this important info could be added:
MatLog requires root permission or if you don't have root, connect to a computer & copy/paste this in adb to grant the required permission:
adb shell pm grant com.pluscubed.matlog android.permission.READ_LOGS
In the MatLog Play Store page this could be added:
The logcat are saved in /data/media/0/matlog/saved_logs/ or /sdcard/matlog/saved_logs/.
This is deprecated & should be deleted:
Google+ Community: https://goo.gl/VQpTfp
In the README.md file this is wrong:
Where are the logs saved?
On the SD card, under /sdcard/catlog/saved_logs/.
Replace with:
On the SD card, under /sdcard/matlog/saved_logs/.
Amazing app! However I'd love to be able to pick recently searched/filtered strings from the search dropdown, rather than having to find or type them again.
Currently the log facility (or whatever the right word is) field to the left of the log level character is only 9 columns wide. Ideally it should be possible to change this.
Why does MatLog require network access ?
AFwall+ reports that MatLog (v1.1.1 from IzzyOnDroid F-Droid repo : https://android.izzysoft.de/repo) tries to access *.compute-1.amazonaws.com
Why ?
Matlog can no longer save recorded file due to the privacy changes on Android 11 which made the storage access become more strict. Is there a workaround for this?
2021-05-31 15:27:36.628 4671-21060/? E/MediaProvider: Creating a non-default top level directory or deleting an existing one is not allowed!
2021-05-31 15:27:36.632 2800-2887/com.pluscubed.matloglibre.debug E/SaveLogHelper: couldn't create new file
java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively0(Native Method)
at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:317)
at java.io.File.createNewFile(File.java:1008)
at com.pluscubed.logcat.helper.SaveLogHelper.saveLog(SaveLogHelper.java:246)
at com.pluscubed.logcat.helper.SaveLogHelper.saveLog(SaveLogHelper.java:232)
at com.pluscubed.logcat.LogcatRecordingService.handleIntent(LogcatRecordingService.java:212)
at com.pluscubed.logcat.LogcatRecordingService.onHandleIntent(LogcatRecordingService.java:168)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:77)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:250)
at android.os.HandlerThread.run(HandlerThread.java:67)
2021-05-31 15:27:36.643 1117-4491/? E/soundtrigger: audio_extn_sound_trigger_update_stream_status: invalid input device 0x0, for event 3
2021-05-31 15:27:37.036 1577-1577/? E/AudioService.OrientationHelper: Unknown device rotation
2021-05-31 15:27:38.132 4671-18043/? E/MediaProvider: Creating a non-default top level directory or deleting an existing one is not allowed!
2021-05-31 15:27:38.134 2800-2887/com.pluscubed.matloglibre.debug E/SaveLogHelper: couldn't create new file
java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively0(Native Method)
at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:317)
at java.io.File.createNewFile(File.java:1008)
at com.pluscubed.logcat.helper.SaveLogHelper.saveLog(SaveLogHelper.java:246)
at com.pluscubed.logcat.helper.SaveLogHelper.saveLog(SaveLogHelper.java:232)
at com.pluscubed.logcat.LogcatRecordingService.handleIntent(LogcatRecordingService.java:212)
at com.pluscubed.logcat.LogcatRecordingService.onHandleIntent(LogcatRecordingService.java:168)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:77)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:250)
at android.os.HandlerThread.run(HandlerThread.java:67)
2021-05-31 15:27:38.142 2800-2887/com.pluscubed.matloglibre.debug E/LogcatRecordingService: unexpected exception
java.io.InterruptedIOException: read interrupted
at libcore.io.Linux.readBytes(Native Method)
at libcore.io.Linux.read(Linux.java:189)
at libcore.io.ForwardingOs.read(ForwardingOs.java:176)
at libcore.io.BlockGuardOs.read(BlockGuardOs.java:305)
at libcore.io.ForwardingOs.read(ForwardingOs.java:176)
at libcore.io.IoBridge.read(IoBridge.java:509)
at java.io.FileInputStream.read(FileInputStream.java:320)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
at java.io.BufferedInputStream.read(BufferedInputStream.java:347)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:291)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:355)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:181)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:172)
at java.io.BufferedReader.readLine(BufferedReader.java:335)
at java.io.BufferedReader.readLine(BufferedReader.java:400)
at com.pluscubed.logcat.reader.SingleLogcatReader.readLine(SingleLogcatReader.java:67)
at com.pluscubed.logcat.LogcatRecordingService.handleIntent(LogcatRecordingService.java:199)
at com.pluscubed.logcat.LogcatRecordingService.onHandleIntent(LogcatRecordingService.java:168)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:77)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:250)
at android.os.HandlerThread.run(HandlerThread.java:67)
2021-05-31 15:27:38.145 4671-17047/? E/MediaProvider: Creating a non-default top level directory or deleting an existing one is not allowed!
2021-05-31 15:27:38.148 2800-2887/com.pluscubed.matloglibre.debug E/SaveLogHelper: couldn't create new file
java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively0(Native Method)
at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:317)
at java.io.File.createNewFile(File.java:1008)
at com.pluscubed.logcat.helper.SaveLogHelper.saveLog(SaveLogHelper.java:246)
at com.pluscubed.logcat.helper.SaveLogHelper.saveLog(SaveLogHelper.java:232)
at com.pluscubed.logcat.LogcatRecordingService.handleIntent(LogcatRecordingService.java:222)
at com.pluscubed.logcat.LogcatRecordingService.onHandleIntent(LogcatRecordingService.java:168)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:77)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:250)
at android.os.HandlerThread.run(HandlerThread.java:67)
2021-05-31 15:27:38.227 1117-1275/? E/soundtrigger: audio_extn_sound_trigger_update_stream_status: invalid input device 0x0, for event 2
2021-05-31 15:27:38.454 1577-1577/? E/AudioService.OrientationHelper: Unknown device rotation
2021-05-31 15:27:39.062 1577-1577/? E/AudioService.OrientationHelper: Unknown device rotation
2021-05-31 15:27:39.668 1118-1291/? E/sensors-hal: handle_sns_client_event:62, mot_disprot_event: now=174832616574457 ts=174832434646707, type=16, status=3
Please add scrollbar for Matlog, it's very hard to scroll without scrollbar. Thank a lot!
On Android 6.0.1 reading log is not possible.
Another suggestion, when I'm monitoring logcat via adb, before testing something I like to hit return a few times to insert some white space so I can easily see what went on during the time I care about. I suggest adding a way to insert a line or some other sort of divider, maybe change the bg of the current line when the screen is triple tapped (not the line that is being tapped three times, but rather the most recent log line). Then you you go off and do something you want to monitor, you can come back and easily see what went on during that, rather than having to comb through the entire session.
Hey, just curious about how difficult it would be to add the ability to read regular logcats in matlog. It would be quite useful to be able to filter adb logs from users while on my phone.
When clicking the menu button in the app, the app crashes.
Logs:
Exception while inflating <vector>
android.content.res.Resources$NotFoundException: Resource is not a ColorStateList (color or path): TypedValue{t=0x2/d=0x1010429 a=-1}
at android.content.res.Resources.loadColorStateList(Resources.java:2376)
at android.content.res.TypedArray.getColorStateList(TypedArray.java:343)
at android.support.graphics.drawable.VectorDrawableCompat.inflate(VectorDrawableCompat.java:5757)
at android.support.graphics.drawable.VectorDrawableCompat.createFromXmlInner(VectorDrawableCompat.java:674)
at android.support.v7.widget.AppCompatDrawableManager$VdcInflateDelegate.createFromXmlInner(AppCompatDrawableManager.java:775)
at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:366)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:198)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:191)
at android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:102)
at android.support.v7.view.menu.MenuItemImpl.getIcon(MenuItemImpl.java:505)
at android.support.v7.view.menu.ListMenuItemView.initialize$667f453d(ListMenuItemView.java:134)
at android.support.v7.view.menu.MenuAdapter.getView(MenuAdapter.java:109)
at android.support.v7.view.menu.MenuPopup.measureIndividualMenuWidth(MenuPopup.java:161)
at android.support.v7.view.menu.StandardMenuPopup.show(StandardMenuPopup.java:2174)
at android.support.v7.view.menu.MenuPopupHelper.showPopup(MenuPopupHelper.java:290)
at android.support.v7.view.menu.MenuPopupHelper.tryShow(MenuPopupHelper.java:177)
at android.support.v7.widget.ActionMenuPresenter$OpenOverflowRunnable.run(ActionMenuPresenter.java:806)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at dalvik.system.NativeStart.main(Native Method)
FATAL EXCEPTION: main
Process: com.pluscubed.matloglibre, PID: 22628
android.content.res.Resources$NotFoundException: File res/drawable/ic_share_white_24dp.xml from drawable resource ID #0x7f080075. If the resource you are trying to use is a vector resource, you may be referencing it in an unsupported way. See AppCompatDelegate.setCompatVectorFromResourcesEnabled() for more info.
at android.content.res.Resources.loadDrawable(Resources.java:2235)
at android.content.res.Resources.getDrawable(Resources.java:733)
at android.content.res.Resources.getDrawable(Resources.java:711)
at android.support.v7.widget.VectorEnabledTintResources.superGetDrawable(VectorEnabledTintResources.java:75)
at android.support.v7.widget.AppCompatDrawableManager.onDrawableLoadedFromResources(AppCompatDrawableManager.java:432)
at android.support.v7.widget.VectorEnabledTintResources.getDrawable(VectorEnabledTintResources.java:68)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:465)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:203)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:191)
at android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:102)
at android.support.v7.view.menu.MenuItemImpl.getIcon(MenuItemImpl.java:505)
at android.support.v7.view.menu.ListMenuItemView.initialize$667f453d(ListMenuItemView.java:134)
at android.support.v7.view.menu.MenuAdapter.getView(MenuAdapter.java:109)
at android.support.v7.view.menu.MenuPopup.measureIndividualMenuWidth(MenuPopup.java:161)
at android.support.v7.view.menu.StandardMenuPopup.show(StandardMenuPopup.java:2174)
at android.support.v7.view.menu.MenuPopupHelper.showPopup(MenuPopupHelper.java:290)
at android.support.v7.view.menu.MenuPopupHelper.tryShow(MenuPopupHelper.java:177)
at android.support.v7.widget.ActionMenuPresenter$OpenOverflowRunnable.run(ActionMenuPresenter.java:806)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at dalvik.system.NativeStart.main(Native Method)
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #16: invalid drawable tag vector
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:933)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
at android.content.res.Resources.loadDrawable(Resources.java:2231)
... 26 more
The filter option is really nice but is it also possible to filter by TAG or something like this?
Version: v1.2.3
Desired behavior:
Users can only copy 1 log line at a time. It'd be great if users can select multiple lines and copy them.
UI proposal:
Matlog links to the wrong github page.
Version: v1.2.3
Use case:
When users find an interesting log lines, by say, change the log level to ERROR, the users then want to view the surrounding logs at a more detailed level, e.g., VERBOSE.
Desired behavior:
Current behavior:
Add a link to Google Play within the app so people could give you ratings easily.
Document within the app the need to do
pm grant com.pluscubed.matlog android.permission.READ_LOGS
Why? Else one needs to revoke permissions just to see the message about needing this permission again.
If it was fully documented within the app, one needn't revoke the permission just to see what it said before.
Please implement something similar to ScrubberUtils from the CM bug report tool for improve privacy. https://github.com/CyanogenMod/android_packages_apps_CMBugreport/blob/cm-13.0/src/org/cyanogenmod/bugreport/ScrubberUtils.java
I have an issue where matlog just keep on loading forever. The spinner just spins. Nothing happens. But I can change settings and search (nothing shows during search, only the spinner).
Tested with granted permission/rootless and root.
Info:
OS: Android 8.1 Oxygen OS.
Phone: OnePlus 5T
Matlog version: 1.2.0 (beta), 1.1.1 (stable)
Hi there @pluscubed, thanks for continuing and improving the awesome work of @nolanlawson! Would you please add your app to the FOSS store F-Droid so that privacy geeks like me get it without Google?
On Android 8.0 there always is a freeze, with "Send Feedback?", and then after recovery if any, it needs help scrolling, with the user's finger. ASUS Zenfone 3. Matlog beta 1.1.1.
It would be nice to have a button to jump to the top of the log.
I tried to grant permission via adb and get the following error.
Exception occurred while executing 'grant':
java.lang.SecurityException: grantRuntimePermission: Neither user 2000 nor current process has android.permission.GRANT_RUNTIME_PERMISSIONS.
at android.app.ContextImpl.enforce(ContextImpl.java:2187)
at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:2215)
at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermissionInternal(PermissionManagerService.java:1481)
at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:1463)
at android.permission.PermissionManager.grantRuntimePermission(PermissionManager.java:378)
at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:2419)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:260)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:26028)
at android.os.Binder.shellCommand(Binder.java:972)
at android.os.Binder.onTransact(Binder.java:856)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4818)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:9350)
at android.os.Binder.execTransactInternal(Binder.java:1228)
at android.os.Binder.execTransact(Binder.java:1165)
We did a suggestion for an improvement but we realize that you have some new features. We want to know if you are planning to upload the latest code to GPlay.
As the title states, no notification when recording.
E: suppressing notification from package by user request.
E: No channel found for pkg=com.pluscubed.matlog...
Could you please consider adding support for adaptive icons?
You can find the relevant developer documentation here: Adaptive icons.
I'm using Android 8.0, S8+, when I make widget of Matlog, try to click on it but nothing happen.
I want to present you the concept version of MatLog. It takes into account the realities of modern devices, and therefore the interface is made so that the user does not reach up for the most necessary functions. Some features such as "floating window" will be added soon.
Minimum SDK version is 21 (it's obvious)
What I suggest:
In the near future I will make some improvements to the master branch, and we will post an update to google play for old devices. As soon as I fix all flaws in MatLog2, and after tests, you have to upload a new version for devices with SDK 21+
Hi,
message like this appear with WTF facility filter enabled but I think that this is an INFO message.
10-31 14:50:49.691 I/NetworkController.MotorolaMobileSignalController(1)( 2291): MotorolaMobilePhoneStateListener.onSignalStrengthsChanged: Entered: signalStrength=SignalStrength: 10 0 -120 -160 -120 -1 -1 99 2147483647 2147483647 2147483647 2147483647 2147483647 gsm|lte level=3
Maybe a BUG?
Regards.
Alessandro
@maxwen @nathanchance @cooldroid @Unpublished
I was completely unaware of this fork, and I'm flattered that MatLog would be included in OmniROM! I'll merge the improvements from the Omni fork if that is OK with you guys? I'm hoping to make a new release by the end of the month, on both Google Play and F-Droid.
https://github.com/omnirom/android_packages_apps_Matlog
https://github.com/cooldroid/matlog
Feature Request: It would be great if there was a way to horizontally scroll the logcat list instead of just wrapping the text using (Expand by default) option in the preferences.
Any chance of adding this to F-droid?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.