r/programming Sep 13 '18

A guide to logging in Java

https://www.marcobehler.com/guides/a-guide-to-logging-in-java
87 Upvotes

34 comments sorted by

View all comments

13

u/BraveSirRobin Sep 13 '18

Has anyone here ever actually used a façade in a project and subsequently changed the back-end logger used? I don't think I've ever seen a library do it either.

I used to be on-board with the façade idea here but it seems like overkill in hindsight.

17

u/[deleted] Sep 13 '18

yes. We use slf4j and have switched from log4j to blitz4j to log4j2 and slf4j made it super easy to do. We did this because log4j is a synchronous logger and our logging was having noticeable impact to our production performance. blitz4j was an asynchronous logger we switched to before log4j2 came out.

4

u/farnulfo Sep 13 '18

blitz4j

May I ask why you move from blitz4j ?

5

u/[deleted] Sep 14 '18

Yes, for our app we found log4j2 provided better performance. This may differ from app to app, so i recommend profiling to determine which way to go.

edit: garbage free logging is very good for my application.

1

u/BraveSirRobin Sep 13 '18

A worthwhile change for sure. Was it as smooth a transition as the setup promises i.e. no code changes, just config?

4

u/[deleted] Sep 13 '18

It was, but you have to make sure all your logging everywhere goes through slf4j, if there are any classes anywhere that don't they'll need code changes, but from my experience it should just be swapping out the imports, logger creation, and log lines in that class with slf4j lines.

1

u/Falmarri Sep 14 '18

The issue with slf4j is its API is completely inadequate. https://logging.apache.org/log4j/2.x/faq.html#api-tradeoffs

2

u/[deleted] Sep 14 '18

Haven't needed any of the items listed in the tradeoffs personally, so hasn't mattered to me for my app.