java-stack-parser
Parse Java stack traces and transform them into comprehensive JS objects
Install
You can install this package either with npm
, yarn
or bower
.
npm / yarn
For npm:
~$ npm install java-stack-parser
For yarn:
~$ yarn add java-stack-parser
Then, you can require('java-stack-parser')
or include the library in your web page directly via a <script>
tag
bower
~$ bower install java-stack-parser
Then, you can include the library in your web page directly via a <script>
tag
Documentation
The library defines 3 objects:
Stack
: represents the full stacktrace. It is compose of a list ofStackGroup
s.StackGroup
represents a group of consecutiveStackLine
s with the sameStackPackage
.StackLine
represents a line of the full stacktrace, e.g.at java.net.SocketInputStream.read(SocketInputStream.java:185)
.StackPackage
represents the package of the currentStackLine
. Taking theStackLine
above, the resultingStackPackage
will bejava.net
.
Stack
Object
This object is used to parse and transform a string representing a Java stack trace. Here is an example of how to use it. Alternatively, you can check out the working demo
let stacktrace = '...';let stack = ; stack; // Display stack trace information into the consolestackgroups;
The Stack
object gives you the ability of defining your own "vendor" packages, resulting of a better grouping. For example, if your application uses 2 libraries with a groupId of com.acme
and my.library
, you can pass this as an optional parameter to the constructor:
let stacktrace = '...';let stack = 'My libraries': 'com.acme' 'my.library' "Java/Sun/Oracle": "java" "javax" "sun" "sunw" "com.sun" "com.oracle" "Apache": "org.apache"; stack; // Display stack trace information into the consolestackgroups;
Now, if the stack trace contains consecutive lin with the package com.acme
or my.library
, they will be group under the same StackGroup
.
Development
To build the library in development mode (non-uglified, with a watch on the source) simply do:
~$ npm run dev
For the production version:
~$ npm run build
You can run tests and check the coverage with the following 2 commands:
# Run tests ~$ npm test# Check covergae ~$ npm run coverage
License
This library is released under Apache 2.0 license