Skip to content

This cordova plugin writes Logcat and JavaScript messages to a file for later use.

License

Notifications You must be signed in to change notification settings

shihyu/cordova-logcat-filelogger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Plugin: cordova-logcat-filelogger

This cordova plugin writes Logcat and JavaScript messages to a file for later use. It supports log rotation and file compression for easier transfer.

Installing the plugin

cordova plugin add https://github.com/kolbasa/cordova-logcat-filelogger

Configuring the plugin

document.addEventListener('deviceready', function () {
    var logCatPlugin = window.cordova.plugins.LogCatPlugin;
    logCatPlugin.init(
        {
            success: function() {
                // initialized callback
            },
            failure: function() {
                // reject callback
            },
            jsLogFileName: 'jsLog.txt',
            logCatFileName: 'catLog.txt',
            maxFileSizeInKB: 1024,
            // Strings that should be included
            filterBy: [
                ' W/', // Like log levels
                ' E/',
                ' F/',
                ' Fatal'
            ],
            // Strings you want to filter out, like emulation spam
            filterOut: [
                'I/InstantRun',      // Emulation
                'EGL_emulation',     // Emulation
                ':CONSOLE',          // Console-Logs
                'I/System.out',      // Java output
                '/LogCatPlugin',
                'D/SystemWebChromeClient',
                'javascript:cordova.plugins.LogCatPlugin'
            ],
            logCallBack: function (sHeader, sBody, sLevel) {
                // Log callback for your javascript application
                console.log(sLevel, sHeader, sBody);
            }
        }
    );
}, false);

Usage

Start the file logger:

var logCatPlugin = window.cordova.plugins.LogCatPlugin;
logCatPlugin.startLogger(
    {
        success: function() {
            // initialized callback
        },
        failure: function() {
            // reject callback
        }
    }
);

Get the log files:

var logCatPlugin = window.cordova.plugins.LogCatPlugin;
logCatPlugin.getLcLogPath(
    {
        success: function(sLogPath) {
            // Process the logfiles
            // e.g. /data/data/com.ionicframework.filelogger/files/catLog.txt
        },
        failure: function() {
            // reject callback
        }
    }
);

Methods

Method Name Arguments Type Notes
startLogger {
 success:fn,
 failure:fn
}

Function
Function
 
Starts to write all Logcat data to your specified file. Possible reject codes: 'LOGGING_STOPPED', 'PROCESS_KILLED', 'LOGCAT_COMMAND_RETURNED_ERROR'
stopLogger {
 success:fn
}
Stops the Logger.
deleteLog {
 success:fn,
 failure:fn
}
Deletes all files including the JavaScript log. It is not necessary to stop the Logger first. Possible reject codes: 'COULD_NOT_DELETE_FILE'.
jsLog jsLog Write your JavaScript log into a separated log file.
getLcLogPath {
 success:fn,
 failure:fn
}
Returns the Logcat logfile path.
getJsLogPath {
 success:fn,
 failure:fn
}
Returns the JavaScript logfile path.
zipAll {
 success:fn,
 failure:fn
}
Compresses all logfiles to one zip-archive and returns the file path.
throwExampleError {
 success:fn
}
Throw a NullPointerException for debugging purposes.
throwExampleFatalError none Throw a fatal error to crash your application.
getLastLcEntries {
 success:fn,
 failure:fn,
 filterBy:arr,
 filterOut:arr,
 maxEntries:int
}

Function
Function
Array
Array
Integer
 
Returns a string that contains Logcat entries with size maxEntries. You can filter them with filterBy and filterOut.
getLastJsEntries {
 success:fn,
 failure:fn,
 filterBy:arr,
 filterOut:arr,
 maxEntries:int
}
Returns a string that contains JavaScript entries with size maxEntries. You can filter them with filterBy and filterOut.
clearLcBuffer {
 success:fn,
 failure:fn
}
Clears the Logcat Buffer with the command: logcat -c.
showInFileManager {
 success:fn,
 failure:fn
}
Copies all log files to the external storage and opens the directory in the systems file browser.

Step by step instructions for Ionic newcomers

Create an empty ionic project if needed:

ionic start filelogger blank

Navigate to your project:

cd filelogger

Install the plugin:

ionic plugin add https://github.com/kolbasa/cordova-logcat-filelogger

Copy LoggerService.js to www/js

cp plugins/cordova-plugin-logcat/ionic/LoggerService.js www/js/LoggerService.js

Add <script src="js/LoggerService.js"></script> to your www/index.html. It should look like this:

<!-- [...] -->
<script src="js/app.js"></script>
<script src="js/LoggerService.js"></script>
<!-- [...] -->

Initialize the plugin in your www/js/app.js by appending this run block:

.run(
    /**
     * @param $log {$log}
     * @param LoggerService {LoggerService}
     */
    function ($log, LoggerService) {
        document.addEventListener('deviceready', function () {
            LoggerService.init()
                .catch(function (err) {
                    $log.error("Something went wrong", err);
                })
        }, false);
    }
)

Create the android build:

ionic platform add android
ionic platform build android

Run your build:

ionic run android

Open the inspect window in Chrome (type in chrome://inspect/#devices) and select your device/emulator.

Select console in the Toolbar and type in the console:

LogCatPlugin.startLogger()

You should see the stream of Logcat data coming in.

About

This cordova plugin writes Logcat and JavaScript messages to a file for later use.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published