Slide 1

Slide 1 text

Logging isn’t free A brief look at logging performance. Corneil du Plessis

Slide 2

Slide 2 text

Examples – Logging with String concatenation

Slide 3

Slide 3 text

Examples – Logging with Placeholder

Slide 4

Slide 4 text

Examples – Logging with Placeholder toString

Slide 5

Slide 5 text

Examples – Fluent Logging

Slide 6

Slide 6 text

Examples – Kotlin Klogging

Slide 7

Slide 7 text

Benchmark – Log4J 0.00 100000.00 200000.00 300000.00 400000.00 500000.00 600000.00 700000.00 benchmarkAToString benchmarkFluentWithLazy benchmarkFluentWithParam benchmarkKLogging benchmarkKLoggingCheck benchmarkKLoggingExt benchmarkPlaceHolderToString benchmarkPlaceHolders benchmarkPlaceHoldersNoExt benchmarkPlaceHoldersNoExtCheck benchmarkStringCat benchmarkStringCatToString Log4J Enabled Disabled

Slide 8

Slide 8 text

Benchmark – Log4J – Logarithmic scale 1.00 100.00 10000.00 1000000.00 benchmarkAToString benchmarkFluentWithLazy benchmarkFluentWithParam benchmarkKLogging benchmarkKLoggingCheck benchmarkKLoggingExt benchmarkPlaceHolderToString benchmarkPlaceHolders benchmarkPlaceHoldersNoExt benchmarkPlaceHoldersNoExtCheck benchmarkStringCat benchmarkStringCatToString Log4J Enabled Disabled

Slide 9

Slide 9 text

Benchmark – Log4J - No Fluent 0.00 10000.00 20000.00 30000.00 40000.00 benchmarkAToString benchmarkKLogging benchmarkKLoggingCheck benchmarkKLoggingExt benchmarkPlaceHolderToString benchmarkPlaceHolders benchmarkPlaceHoldersNoExt benchmarkPlaceHoldersNoExtCheck benchmarkStringCat benchmarkStringCatToString Log4J Enabled Disabled

Slide 10

Slide 10 text

Benchmark – Log4J – No Fluent – Log Scale 1.00 100.00 10000.00 benchmarkAToString benchmarkKLogging benchmarkKLoggingCheck benchmarkKLoggingExt benchmarkPlaceHolderToString benchmarkPlaceHolders benchmarkPlaceHoldersNoExt benchmarkPlaceHoldersNoExtCheck benchmarkStringCat benchmarkStringCatToString Log4J Enabled Disabled

Slide 11

Slide 11 text

Benchmark – Disabled only 0.00 100.00 200.00 300.00 400.00 benchmarkAToString benchmarkKLogging benchmarkKLoggingCheck benchmarkKLoggingExt benchmarkPlaceHolderToString benchmarkPlaceHolders benchmarkPlaceHoldersNoExt benchmarkPlaceHoldersNoExtCheck benchmarkStringCat benchmarkStringCatToString Disabled

Slide 12

Slide 12 text

Benchmark – Disabled only – Log scale 1.00 10.00 100.00 1000.00 benchmarkAToString benchmarkKLogging benchmarkKLoggingCheck benchmarkKLoggingExt benchmarkPlaceHolderToString benchmarkPlaceHolders benchmarkPlaceHoldersNoExt benchmarkPlaceHoldersNoExtCheck benchmarkStringCat benchmarkStringCatToString Disabled

Slide 13

Slide 13 text

Benchmark – All loggers - Disabled 0.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 benchmarkKLogging benchmarkKLoggingCheck benchmarkKLoggingExt benchmarkPlaceHolders benchmarkPlaceHoldersNoExt benchmarkPlaceHoldersNoExtCheck Disabled JUL LOGBACK LOG4J

Slide 14

Slide 14 text

Benchmark – All loggers - Enabled 0.00 50000.00 100000.00 150000.00 benchmarkKLogging benchmarkKLoggingCheck benchmarkKLoggingExt benchmarkPlaceHolderToString benchmarkPlaceHolders benchmarkPlaceHoldersNoExt benchmarkStringCat benchmarkStringCatToString Enabled JUL LOGBACK LOG4J

Slide 15

Slide 15 text

Resources & Questions • Twitter: @corneil • Github: https://github.com/corneil/logging-is-not-free Questions?