Flutter plugin to monitor the stream of system messages, stack traces etc using logcat command-line tool.
NOTE: This plugin fetches logs only on Android Devices presently.
- Create a function to consume the logcat messages
void _mylistenStream(dynamic value) {
if (value is String) {
_logBuffer.writeln(value);
}
}
- Register your function as a listener to get logs then use it in anyway within your app.
LogcatMonitor.addListen(_mylistenStream);
- Start the logcat monitor passing the filter parameters as defined in logcat tool.
await LogcatMonitor.startMonitor("*.*");
Need permission in AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_LOGS" />
https://pub.dev/packages/logcat_monitor/install
Follows a screenshot of example code in example folder.
Here we use a StringBuffer to store the messages and display them in the log screen.
The LogcatMonitorPlugin runs event/method channel handlers in UI-thread and the logcat process monitor in a background thread as recomended by Google to not block the UI interface.
from logcat -h
:
filterspecs are a series of
<tag>[:priority]
where <tag> is a log component tag (or * for all) and priority is:
V Verbose (default for <tag>)
D Debug (default for '*')
I Info
W Warn
E Error
F Fatal
S Silent (suppress all output)
'*' by itself means '*:D' and <tag> by itself means <tag>:V.
If no '*' filterspec or -s on command line, all filter defaults to '*:V'.
eg: '*:S <tag>' prints only <tag>, '<tag>:S' suppresses all <tag> log messages.
Examples:
*.*
show ALL tags and priorities.flutter,LogcatMonPlugin,S:*
show flutter and LogcatMonPlugin and suppresses all others.