Skip to content

Commit f85cb7d

Browse files
committed
Add rationale
1 parent ad563e7 commit f85cb7d

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# How to log with Clojure
2+
3+
4+
## Goals
5+
We want to choose the logging solution best suited to achieve the following:
6+
7+
- Structured Logging
8+
- A single configuration to rule all the libraries
9+
10+
### Structured logging
11+
Rather than looking at raw logging text messages, we prefer log events.
12+
Log events, popularised by the canonical [syslog](https://en.wikipedia.org/wiki/Syslog) standard, have gain even more
13+
popularity with the rise of micro-services and the need to gather logs in a central place to be able to search and
14+
correlate those events. Logging Aggregators such as Logstash or Graylog have been created for this purpose.
15+
16+
The Graylog team has even published their own format, [GELF](https://docs.graylog.org/en/2.5/pages/gelf.html) to
17+
overcome a few limitations of syslog like the max message size or the lack of compression.
18+
19+
### A single configuration to rule all the libraries
20+
Unfortunately, the state of JVM logging is a mess. There are many APIs and implementations, some libraries like SLF4J
21+
even try to act as a facade, and provides bridges to re-route the application logs throughout the various frameworks
22+
APIs to land in a single place.
23+
24+
25+

0 commit comments

Comments
 (0)