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
200
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
200
Spring Framework 5.2 - Core Container Revisited
ejug
0
180
Andreas Caternberg on Jenkins Pipelines
ejug
0
780
Martin Ahrer on Continuous Delivery Infrastructure With Docker
ejug
0
160
Dirk Mahler on Software Analyse mit jQAssistant & Neo4j
ejug
1
310
Christoph Strobl on Spring Data & Hypermedia
ejug
0
160
Stefan Armbruster on Graph Modelling Antipatterns
ejug
1
140
Stefan Armbruster on Introduction into Neo4J
ejug
1
98
Michael Nitschinger on Building a reactive Couchbase driver for the JVM
ejug
0
150
Other Decks in Technology
See All in Technology
AWSシリコン最前線 〜AI時代のチップ選択を読み解く〜
htokoyo
2
360
Databricks における 生成AIガバナンスの実践
taka_aki
1
370
ポケモンの型をTypeScriptの型システムで表現してみた
subroh0508
0
360
Claude Code×Terraform IaC テンプレート駆動開発
itouhi
1
470
MCP Appsを作ってみよう
iwamot
PRO
4
390
日本 Fintech 未来予測レポート 2027〜2028年(オリジナル版)
8maki
0
710
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/3 - 2026/5
oracle4engineer
PRO
1
240
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.9k
機械学習を「社会実装」するということ 2026年夏版 / Social Implementation of Machine Learning June 2026 Version
moepy_stats
4
1.1k
製造業のクラウド活用最適解〜AI,DXを加速するデータ基盤の作り方〜
hamadakoji
0
430
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
30
23k
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
600
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
A designer walks into a library…
pauljervisheath
211
24k
Why Our Code Smells
bkeepers
PRO
340
58k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Music & Morning Musume
bryan
47
7.2k
Code Review Best Practice
trishagee
74
20k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
540
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
200
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Scaling GitHub
holman
464
140k
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)