Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Christian Grobmeier on Log4j 2
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Enterprise Java User Group Austria
November 26, 2014
Technology
220
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Christian Grobmeier on Log4j 2
Enterprise Java User Group Austria
November 26, 2014
More Decks by Enterprise Java User Group Austria
See All by Enterprise Java User Group Austria
Gerrit Grunwald on What the CRaC... SUPERFAST JVM STARTUP
ejug
2
210
Spring Framework 5.2 - Core Container Revisited
ejug
0
190
Andreas Caternberg on Jenkins Pipelines
ejug
1
810
Martin Ahrer on Continuous Delivery Infrastructure With Docker
ejug
0
170
Dirk Mahler on Software Analyse mit jQAssistant & Neo4j
ejug
1
320
Christoph Strobl on Spring Data & Hypermedia
ejug
0
170
Stefan Armbruster on Graph Modelling Antipatterns
ejug
1
140
Stefan Armbruster on Introduction into Neo4J
ejug
1
110
Michael Nitschinger on Building a reactive Couchbase driver for the JVM
ejug
0
160
Other Decks in Technology
See All in Technology
When Does a Local Qwen Start to Break
morshoto
0
190
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
2
1.6k
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
110
enechainの内製セルフサービスプラットフォーム
hiyosi
0
140
Bet AI Day 2026丨AIによって本質に戻るシステムリスク管理
layerx
PRO
0
1.3k
From Vanilla Kubernetes to a Batteries-Included Platform: Developer Experience at 1,300+ Clusters
yosshi_
0
620
Kiro Crewしか勝たん!?
miu_crescent
PRO
0
190
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
0
270
動画配信アプリでの Engage SDK 導入 — TVer Android が Play ストアにコンテンツを届けるまで
techtver
PRO
0
150
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
130
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
3
1.9k
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
2
290
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Invisible Side of Design
smashingmag
301
52k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Designing for humans not robots
tammielis
254
26k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
510
How GitHub (no longer) Works
holman
316
150k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
370
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
230
Code Reviewing Like a Champion
maltzj
528
40k
Transcript
Apache Log4j 2
Christian Grobmeier @grobmeier http://www.grobmeier.de ASF V. P. Logging Services
http://www.leanpub.com/thezenprogrammer/c/linz
(hopefully) soon: www.understandinglog4j.com
Why should you log?
ASF FIRE BRIGADE
Log4j1, Log4j2 log4php Chainsaw log4net log4cxx
How do you log?
We are stable! Log4j 2.1
None
CHALLENGES
SPEED!
Failsafe. Reliable.
Compability.
Taste.
L o g g i n g with Duke
Too much t a s t e . . .
m a k e s headache! Think on: log4j, logback, JUL, TinyLog, AVSL
Pills: Some Abstraction Layers
Commons Logging log4j 1 log4j 2 logback JUL Which pill?
slf4j Commons Logging log4j 1 log4j 2 logback JUL AVSL
Which pill?
slf4j Commons Logging log4j 1 log4j 2 logback JUL AVSL
New kids on the block log4j 2
log4j 2.x is the future of log4j
New in log4j 2.x
Instead: if (logger.isDebugEnabled()) logger.info("Hi, " + u.getA() + “ “
+ u.getB()); Write: logger.info("Hi, {} {} ", u.getA(), u.getB()); API++
Marker: Marker SQL_MARKER = MarkerManager.getMarker("SQL"); logger.debug( SQL_MARKER, "SELECT * FROM
{}", table); Better Filter
@Plugin(name = "Mine", type = "Core", elementType = "appender") public
class Mine extends AppenderBase { private Mine(String name, Filter f) { super(name, f, null); } public void append(LogEvent e) { … } Plugins
@PluginFactory public static Mine create( @PluginAttr("name") String n, @PluginElement("filters") Filter
f) { return new Mine(n, f); } Plugins
<appenders> <Mine name="Hello_Linz" …> <PatternLayout pattern="%d{HH:mm} %msg%n"/> </Mine> </appenders> Configuration
<Configuration> <Appenders> <File name="Grobmeier" fileName="target/mylog.log"> <PatternLayout> <Pattern>%d %C{1.}</Pattern> </PatternLayout> </File>
</Appenders> <Loggers> <Logger name="com.Bar" level="trace"> <AppenderRef ref="Grobmeier"/> </Logger> Configuration
<File name="App" fileName="app.log"> <PatternLayout> <pattern> %d $${jndi:logging/context-name} %m%n </pattern> </PatternLayout>
</File> Configuration
JSON { "configuration": … "appenders": { "Console": { "name": "STDOUT",
"PatternLayout": { "pattern": "%m%n" } }, ...
Configuration Reloading <configuration monitorInterval="30"> ... </configuration>
More? MDC (ThreadContext) EventLogger Flowtracing …
SPEED! log4j 1.x logback log4j 2.x Disabled 5 2386 2116
2314 Logging Performance in ns
SPEED! Async Logging Power!
Again: >18,000,000 messages / second On Solaris 10 (64bit) with
JDK1.7.0_06, 4-core Xeon X5570 dual CPU @2.93Ghz with hyperthreading switched on (16 virtual cores)
LMAX DISRUPTOR removes the kernel need for locks on the
CPU level
CHAINSAW
None
The story of log4php Community
Good times, bad times 1999 2005 2010 2011
You are welcome Join ~8 active committers.
We are back! 2013: 1018 Changes 4730 Mails 2014: 1502
Changes 8501 Mails
Seriously. Isn‘t logging just BORING?
Well... how do you log on your mobile/cloud apps?
With new innovation, new logging challenges come up. Logging needs
innovation too.
Logger Log Collector Log Search Log Analysis
Logger Log Collector Log Search Log Analysis
Logger Log Collector Log Search Log Analysis
None
Logging is mission critical.
One last thing...
Do we need a new Logging JSR? java.net/projects/newlogging
We are hiring! use it! ask questions! spread the love!
send patches!
[email protected]
Christian Grobmeier @grobmeier http://www.grobmeier.de Merci && Baba!
Image Credits Writing Girl (Erin Kohlenberg) Captain Kirk (http://dave-daring.deviantart.com/) Vulcano
(Martin Barland) Fire Brigade (State Library of South Australia) Gear Necklace Designs (Eric Skiff) Gazelle (Flickr: fwooper) Golden Gate Bridge (Flickr: TimeLapseBlog.com) Pens (Flickr: JD | Photography) Wineglass (Flickr: Willia4) Headache (Flickr: Threephin) Pills (Dr. Michael Günther) Wheelgear (Flickr: ralphbijker) Chainsaw (Flickr: Dave Hosford) Elephant (Flickr: Werner Vermaak) Haunted House (Flickr: barb_ar) SOS (Flickr: Daquella Manera) Bathtime muscles (Flickr: mollypop) Yawning Animal (Flickr: robef) Mobile (Flickr: twicepix) Steve (https://www.flickr.com/photos/-macjasp/) Paul Carmody Clouds (Flickr: karindalziel) Fight (Flickr: KellBailey)