I have all types of Java Exceptions within my logs, that have no real form to them, except that they all start with "com." or "java." and end with exactly ".Exception".
For example:
java.lang.IllegalStateException
java.lang.NullPointerException
javax.servlet.ServletException
com.ibm.blah.SomeException
etc.
How can I extract this in-line?
Thanks, Sean
If you want it purely inline, try:
| rex field=_raw "\b(?<exception_type>(com|java|javax)\.[\w\.]+Exception)"
(Match on either "com" or "java" or javax, followed by a dot, and then as many word characters or dots as you need until you finish with "Exception")
If you'd rather not have to use it in the search string, then:
In transforms.conf:
[exception-type]
REGEX = \b((com|java|javax)\.[\w\.]+Exception)\b
FORMAT = exception_type::$1
In props.conf:
[yoursourcetype]
REPORT-exceptions = exception-type
Or, you can configure an eventtype for each exception type or group of exception types.
You're right that it was a typo, but the question mark was in the right place. The leading dot should have been a word breaker ('.' vs '\b'). Edited above to correct.
I think you have a simple typo. Taking part of your query:
".(?
try this:
".(<?exception_type>(com|java).[\w.]+Exception)"
How do I then reference these fields? I tried the following, but it did not work.
eventtype="all_web" *Exception | rex field=_raw ".(?
Thanks for the help!