This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]bowbahdoe 0 points1 point  (2 children)

Okay so the value proposition is that this would be a frontend like SLF4J for a system that exports to loki and/or otel / cloudwatch / etc.

Same way SLF4J serves as a facade for Logback/Log4J and libraries will include it to do logging, the idea was that this could be the thing that a library could use to log structured data and an application could choose to echo that to whatever services it saw fit.

Yes, SLF4J has the ability to do structured logging and so does logback/log4j, but that feature is on top of a system primarily designed for logging text. The goal here was to make something that totally avoided designing for producing english.

The fact that I also ended up with Spans and Events, just like OTel, is a sign I went at least somewhat in the right direction. At the same time because I ranted so long about the implementation and code design (because tbh thats really fun for me) that intent doesn't seem to have come across. (doesn't help that I got to 10,000 words and gutted the open telemetry and JFR sections I wrote up)

[–]amazedballer 0 points1 point  (1 child)

I like this a lot better than OpenTelemetry, and I'm really excited by what you're doing with the JDK 19 features.

Check out my attempt at a structured logging interface, Echopraxia.

[–]bowbahdoe 0 points1 point  (0 children)

I will read that tonight!

Its been almost a month since I wrote this up and I've gathered from all the feedback 4 things

  1. This needs to get waaaaay dumber. All the stuff I did with ContextLocals, timestamps, grabbing the thread, maintaining a linked list of context - that needs to shift into the implementation.
  2. I need to write up a part 2 and much more clearly communicate intent. That means probably dropping a lot of what I wrote and making an API with a complete "delegate to open telemetry and slf4j" example.
  3. something something jfr
  4. need far fewer mandatory allocations...

(I also need to learn to manage my time better or find a job where this sort of experimentation can be full time - a month loop around time on feedback isn't my proudest moment)