<commit_before>TimberTreeUtils
===============

Set of [timber](https://github.com/JakeWharton/timber) trees for
[Crashlytics](https://fabric.io/kits/android/crashlytics) and debugging.


Trees
----

### CrashlyticsLogExceptionTree (Default log level: ERROR)

Sends non-fatal exception to Crashlytics with `Crashlytics.logException()`.

If no throwable is passed, it generates stack trace from caller of Timber.e() or etc.
NOTE: Stack trace elements of timber code are automatically removed before sent.

### CrashlyticsLogTree (Default log level: WARN)

Records log to Crashlytics with `Crashlytics.log()`.
<commit_msg>Add usage for plant() to README.md<commit_after>TimberTreeUtils
===============

Set of [timber](https://github.com/JakeWharton/timber) trees for
[Crashlytics](https://fabric.io/kits/android/crashlytics) and debugging.


Usage
----

This library only contains `Timber.Tree` implementations. Just plant it to Timber.

```java
Timber.plant(new CrashlyticsLogExceptionTree())
```


Trees
----

### CrashlyticsLogExceptionTree (Default log level: ERROR)

Sends non-fatal exception to Crashlytics with `Crashlytics.logException()`.

If no throwable is passed, it generates stack trace from caller of Timber.e() or etc.
NOTE: Stack trace elements of timber code are automatically removed before sent.

### CrashlyticsLogTree (Default log level: WARN)

Records log to Crashlytics with `Crashlytics.log()`.

{'fraction_non_alphanumeric': 0.12332628611698379, 'fraction_numerical': 0.0, 'mean_word_length': 5.228070175438597, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1580936', 'n_tokens_mistral': 468, 'n_tokens_neox': 428, 'n_words': 140}