[logback-dev] [JIRA] (LOGBACK-1296) Compute hash value from exception stacks
QOS.CH (JIRA)
noreply-jira at qos.ch
Fri May 5 17:01:00 CEST 2017
Pierre Smeyers created LOGBACK-1296:
---------------------------------------
Summary: Compute hash value from exception stacks
Key: LOGBACK-1296
URL: https://jira.qos.ch/browse/LOGBACK-1296
Project: logback
Issue Type: New Feature
Components: logback-classic
Affects Versions: 1.3.0
Reporter: Pierre Smeyers
Assignee: Logback dev list
Priority: Minor
Comparing two stack traces can be somewhat painful if you want to check whether two errors are - or not - occurrences of the same error.
This new feature aims at computing a hash (hexadecimal integer) for each individual error stack trace, and inline them in the stack trace and/or output it as an individual conversion word.
Ex:
{{{color:#ff0000}#07e70d1e{color}> com.xyz.MyApp$MyClient$MyClientException: An error occurred while getting the things}}
{{ at com.xyz.MyApp$MyClient.getTheThings(MyApp.java:26)}}
{{ at com.xyz.MyApp.test_logging(MyApp.java:16)}}
{{ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)}}
{{ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)}}
{{ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)}}
{{ at java.lang.reflect.Method.invoke(Method.java:498)}}
{{ at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)}}
{{ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)}}
{{ ...}}
{{Caused by: {color:#ff0000}#393b506a{color}> com.xyz.MyApp$HttpStack$HttpError: I/O error on GET request for http://dummy/things}}
{{ at com.xyz.MyApp$HttpStack.get(MyApp.java:40)}}
{{ at com.xyz.MyApp$MyClient.getTheThings(MyApp.java:24)}}
{{ ... 23 common frames omitted}}
{{Caused by: {color:#ff0000}#d6db326f{color}> java.net.SocketTimeoutException: Read timed out}}
{{ at com.xyz.MyApp$HttpStack.get(MyApp.java:38)}}
{{ ... 24 common frames omitted}}
Those hash will help you detect several occurrences of the same error, as it is highly probable that two errors with the same hash will be - indeed - occurrences of the same error.
I've already open-sourced this feature in a separate library (see [https://github.com/Orange-OpenSource/orange-mathoms-logging] ).
It is very useful (especially when indexing this hash into Elasticsearch, to track the error history, frequency, ...) and quite used internally at Orange, and I though it would be nice to contribute to Logback...
An implementation proposal is ready in my GitHub account
See: [https://github.com/pismy/logback/tree/stack-hash]
Let me know if I should create a PR now or start a discussion about the design.
Thanks,
Pierre.
--
This message was sent by Atlassian JIRA
(v7.3.1#73012)
More information about the logback-dev
mailing list