////
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements. See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License. You may obtain a copy of the License at
    
        https://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
////

= Articles and Tutorials

A collection of external articles and tutorials about Log4j 2. The manual/index.html[Log4j 2 manual] is the ultimate
guide for up-to-date and detailed information on how to configure and use Log4j 2.

== Chinese

* http://www.infoq.com/cn/news/2016/06/log4j-garbage-free[Log4j 2.6免垃圾收集]
(June 12, 2016)
* http://blog.csdn.net/autfish/article/details/51203709[详解log4j2(上) - 从基础到实战]
(April 20, 2016)
* http://www.jianshu.com/p/7aec512a003c[Log4j2使用笔记]
(November 3, 2015)
* http://www.infoq.com/cn/news/2015/09/interview-log4j-pmc[过渡到全新Log4j：Log4j项目管理委员会访谈]
(September 14, 2015)
* http://www.infoq.com/cn/news/2015/09/log4j-version-1-reaches-eol[Log4j版本1生命周期终结]
(September 3, 2015)
* http://www.infoq.com/cn/news/2014/08/apache-log4j2[Apache Log4j 2.0值得升级吗]
(August 5, 2014)
* http://www.importnew.com/19467.html[Log4j2架构分析与实战]
(January 15, 2013)
* http://blog.csdn.net/lrenjun/article/details/8178875[log4j2 使用详解]
(November 13, 2012)
* https://my.oschina.net/xianggao/blog/523401[Log4j2配置文件详解]
(Undated)

== English

* https://www.ralphgoers.com/post/getting-the-most-out-of-the-log4j-2-api[Getting the most out of the Log4j 2 API]
(January 1, 2020)
* https://www.baeldung.com/log4j2-programmatic-config[Programmatic Configuration with Log4j 2]
(December 31, 2019)
* https://www.ralphgoers.com/post/log4j-1-compatibility-in-log4j-2[Log4j 1 Compatiblity in Log4j 2]
(December 22, 2019)
* https://www.ralphgoers.com/post/why-was-log4j-2-created[Why was Log4j 2 created]
(December 14, 2019)
* https://www.marcobehler.com/guides/a-guide-to-logging-in-java[A guide to logging in Java]
(June 23, 2019)
* https://www.alibabacloud.com/blog/exploring-the-secrets-of-java-logs-log4j-2-log-system_594821[Exploring the Secrets of Java Logs: Log4j 2 Log System]
(May 17, 2019)
* https://www.mkyong.com/logging/apache-log4j-2-tutorials/[Apache Log4j 2 Tutorials]
(March 27, 2019)
* https://stackify.com/compare-java-logging-frameworks/[Java Logging Frameworks: log4j vs logback vs log4j2]
(October 30, 2018)
* https://howtodoinjava.com/log4j2[Log4j2 Tutorial]
(June 3, 2018)
* https://crunchify.com/java-how-to-create-your-own-logging-level-in-log4j-configuring-log4j[In Java How to Create your own Logging Level using Log4j (Configuring Log4j 2)]
{May 30, 2018)
* https://www.javacodegeeks.com/2018/03/tales-from-the-field-migrating-from-log4j-to-log4j2.html[Tales from the Field: Migrating from Log4J to Log4J2]
(March 12th, 2018)
* https://www.youtube.com/watch?v=sdOiA1Xql0o[Log4J2 and Java configuration with properties file]
(February 18, 2018)
* https://www.youtube.com/watch?v=BbcSNOtEGWs[Apache Log4j 2 Configuration| Log4j2 with JDK 9.0]
(January 8, 2018)
* https://www.youtube.com/watch?v=KKO5wGi_vEc[Spring Boot - log4j 2 configuration example]
(December 30,2017)
* https://examples.javacodegeeks.com/enterprise-java/log4j/log4j-2-best-practices-example/[Log4j 2 Best Practices example]
(November 14, 2017)
* http://musigma.org/logging/2017/11/06/logging.html[Logging Fundamentals]
(November 6, 2017)
* http://www.rationaljava.com/2017/10/allocation-free-logging-with-log4j2.html[Allocation free logging with Log4j2]
(October 27, 2017)
* https://www.loggly.com/blog/benchmarking-java-logging-frameworks/[Benchmarking Java logging frameworks]
(October 25, 2017)
* http://www.baeldung.com/log4j-2-lazy-logging[Log4j 2 and Lambda Expressions]
(August 22, 2017)
* https://www.callicoder.com/spring-boot-log4j-2-example/[How to use Log4j 2 with Spring Boot]
(August 11, 2017)
* https://www.boraji.com/log4j-2-rollingfileappender-example[Log4j 2 - RollingFileAppender example]
(July 26, 2017)
* https://stackify.com/log4j2-java/[How Log4J2 Works: 10 Ways to Get the Most Out Of It]
(June 14, 2017)
* http://www.baeldung.com/log4j2-appenders-layouts-filters[Intro to Log4j2 – Appenders, Layouts and Filters]
(February 28, 2017)
* https://dzone.com/articles/getting-own-log4j2-file-for-mule-via-spring[Getting Your Own Log4j2 File for Mule via Spring]
(December 29, 2016)
* https://www.youtube.com/watch?v=-XNvCNHjIKw[Understanding and working with Log4j2 for logging in Selenium framework (Part B)]
(December 20, 2016)
* https://www.youtube.com/watch?v=RWZ0gsfkkc4[Understanding and working with Log4j2 for logging in Selenium framework (Part A)]
(December 18, 2016)
* https://garygregory.wordpress.com/2016/11/27/loading-a-log4j-configuration-for-a-specific-ejb/[Loading a Log4j Configuration for a specific EJB]
(November 27, 2016)
* https://medium.com/@anishekagarwal/log4j2-logging-a-primer-f10ed18e9de6#.ojlde7jib[Log4j2 Logging: A Primer]
(October 15, 2016)
* http://www.journaldev.com/7128/log4j2-example-tutorial-configuration-levels-appenders[Log4j2 Example Tutorial – Configuration, Levels, Appenders]
(July 6, 2016)
* http://howtodoinjava.com/log4j2/log4j2-htmllayout-configuration-example/[Log4j2 HTMLLayout Configuration Example]
(June 27, 2016)
* http://javaevangelist.blogspot.jp/2016/06/log4j2-javautillogging-jul-adapter.html[Log4j2 java.util.logging (JUL) Adapter Example]
(June 24, 2016)
* https://vimeo.com/169542136[Matt Sicker - Asynchronous Logging in Log4j 2.6 (CJUG Lightning Talk)]
(June 2, 2016)
  * Errata: "ThresholdFilter" should be "BurstFilter"
* https://dzone.com/articles/log4j-2-configuration-using-properties-file[Log4J 2 Configuration: Using the Properties File]
(May 18, 2016)
* https://springframework.guru/using-log4j-2-spring-boot/[Using Log4j 2 with Sprint Boot]
(April 7, 2016)
* https://www.infoq.com/news/2016/05/log4j-garbage-free[Log4j 2.6 Goes Garbage-Free]
(May 30, 2016)
* http://musigma.org/java/log4j/2016/05/29/log4j-2.6.html[What's New in Log4j 2.6]
(May 29, 2016)
* https://springframework.guru/asynchronous-logging-with-log4j-2/[Asynchronous Logging With Log4j 2]
(March 31, 2016)
* https://springframework.guru/log4j-2-configuration-using-yaml/[Log4J 2 Configuration: Using YAML]
(March 26, 2016)
* https://springframework.guru/log4j-2-configuration-using-json/[Log4J 2 Configuration: Using JSON]
(March 23, 2016)
* https://qbox.io/blog/getting-logstash-2x-ready-for-log4j2[Getting Logstash 2.x Ready for Log4j2]
(March 10, 2016)
* https://springframework.guru/log4j-2-configuration-using-xml/[Log4J 2 Configuration: Using XML]
(March 10, 2016)
* https://springframework.guru/log4j-2-configuration-using-properties-file/[Log4J 2 Configuration: Using Properties File]
(March 8, 2016)
* https://springframework.guru/introducing-log4j-enterprise-class-logging/[Introducing Log4j 2 – Enterprise Class Logging]
(February 8, 2016)
* https://www.javacodegeeks.com/2015/10/better-performing-non-logging-logger-calls-in-log4j2.html[Better Performing Non-Logging Logger Calls in Log4j2]
(October 20, 2015)
* http://marxsoftware.blogspot.com/2015/10/log4j2-non-logging-performance.html[Better Performing Non-Logging Logger Calls in Log4j2]
(October 15, 2015)
* https://www.youtube.com/watch?v=Yv0n-4AsOiI[Nancy M Schorr - Log4j2 with Java and Maven for Logging]
(October 14, 2015)
* https://www.javacodegeeks.com/2015/10/easy-and-consistent-log4j2-logger-naming.html[Easy and Consistent Log4j2 Logger Naming]
(October 10, 2015)
* https://garygregory.wordpress.com/2015/09/16/a-gentle-introduction-to-the-log4j-api-and-lambda-basics/[Writing clean logging code using Java 8 lambdas]
(September 16, 2015)
* https://garygregory.wordpress.com/2015/09/10/the-art-of-test-driven-development-understanding-logging/[The Art of Test Driven Development: Understanding Logging]
(September 10, 2015)
* https://garygregory.wordpress.com/2015/09/08/the-art-of-test-driven-development-per-test-logging/[The Art of Test Driven Development: Per-Test Logging]
(September 8, 2015)
* http://www.infoq.com/news/2015/09/interview-log4j-pmc[The Transition to a New Log4j: a Q&amp;A with Log4j's Project Management Committee]
(September 8, 2015)
* http://www.infoq.com/news/2015/08/log4j-version-1-reaches-eol[Log4j Version 1 Reaches End of Life]
(August 26, 2015)
* https://blogs.apache.org/foundation/entry/apache_logging_services_project_announces[Apache Logging Services Project Announces Log4j 1 End-Of-Life; Recommends Upgrade to Log4j 2]
(August 6, 2015)
* https://www.innoq.com/en/blog/per-request-debugging-with-log4j2/[Per request debugging with Log4j 2 filters]
(May 8, 2015)
* https://blog.oio.de/2015/04/27/log4j-2-configuration-depending-environment/[Log4j 2 configuration depending on environment]
(April 27, 2015)
* https://www.youtube.com/watch?v=EWftNoRhS_M[Ramesh Rajaram - Log4j Key Features]
(April 10, 2015)
* http://www.journaldev.com/7128/apache-log4j-2-tutorial-configuration-levels-appenders-lookup-layouts-and-filters-example[Apache Log4j 2 Tutorial – Configuration, Levels, Appenders, Lookup, Layouts and Filters Example]
(March 16, 2015)
* http://blogs.mulesoft.com/dev/mule-dev/mule-3-6-asynchronous-logging/[Disrupting your Asynchronous Loggers]
(March 5, 2015)
* http://andrew-flower.com/blog/Create_Custom_Log4j_Plugins[Extending Log4j2 - Creating Custom Log4j2 Plugins]
(February 20, 2015)
* http://andrew-flower.com/blog/Basic_Log4j2_Configuration[Log4j2 - a crash course...]
(February 10, 2015)
* http://memorynotfound.com/log4j2-with-log4j2-xml-configuration-example/[Log4j2 with log4j2.xml Configuration Example]
(February 10, 2015)
* https://blog.logentries.com/2015/02/logging-from-your-java-application-using-log4j2/?utm_content=11878557&amp;utm_medium=social&amp;utm_source=facebook[Logging From Your Java Application Using Log4j2]
(February 5, 2015)
* http://blogs.mulesoft.com/dev/mule-dev/mule-3-6-asynchronous-logging/[Asynchronous Logging in Mule 3.6]
(January 20, 2015)
* http://www.infoq.com/news/2014/07/apache-log4j2[Apache Log4j 2.0 - Worth the Upgrade?]
(July 31, 2014)
* http://mycuteblog.com/log4j2-xml-configuration-example/[log4j2 xml configuration example]
(July 26, 2014)
* http://tech.finn.no/2014/07/01/log4j2-in-production-making-it-fly/[Log4j 2 in Production – Making it Fly]
(July 2, 2014)
* https://www.youtube.com/watch?v=ZzVSs_JEhgs[Matt Sicker - Introducing Log4j 2.0]
(May 6, 2014)
* https://www.youtube.com/watch?v=HB0r5DuxGPI[Nicholas Williams - Log4j 2 in Web Applications: A Deeper Look at Effective Java EE Logging]
(May 6, 2014)
* http://www.grobmeier.de/log4j-2-performance-close-to-insane-20072013.html[Log4j 2: Performance Close to Insane]
(July 20, 2013)
* https://news.ycombinator.com/item?id=5612035[Hacker News: Asynchronous Loggers for Low-Latency Logging]
(April 26, 2013)
* http://www.grobmeier.de/the-new-log4j-2-0-05122012.html[The New Log4j 2.0]
(December 5, 2012)

== German

* https://jaxenter.de/apache-log4j-2-6-laeuft-nun-auch-ohne-muell-41098[Apache Log4j 2.6 läuft nun auch ohne Müll]
(May 31, 2016)
* https://www.innoq.com/en/articles/2015/01/logging-konsolidieren-log4j2/[Logging konsolidieren und Performance gewinnen]
(January 23, 2015)

== Japanese

* http://tm-b.hatenablog.com/entry/2016/08/18/200715[中年プログラマーの息抜き]
(August 18, 2016)
* http://minor.hatenablog.com/entry/2016/05/22/193556[【log4j2】ThreadContextを利用してすべてのログに追加情報を出力する]
(May 22, 2016)
* http://qiita.com/kazurof/items/abbd42f11bfc125f3190[Log4j 2でログ出力をテストするサンプルソース]
(February 22, 2016)
* https://www.infoq.com/jp/news/2015/09/interview-log4j-pmc[新Log4jへの移行: Log4jプロジェクト管理グループとのQ&amp;A]
(September 27, 2015)
* https://www.infoq.com/jp/news/2015/09/log4j-version-1-reaches-eol[Log4jバージョン1のサポートが終了]
(September 23, 2015)
* http://qiita.com/pica/items/f801c74848f748f76b58[log4j2の設定ファイル(XML)]
(July 27, 2015)
* http://japanengineers.seesaa.net/article/412195201.html[Apache log4j2によるロギング機能の基本サンプル]
(January 12, 2015)
* http://yamashiro0110.hatenadiary.jp/entry/2014/08/24/093336[Log4j2の使い方めも]
(August 24, 2014)
* https://www.infoq.com/jp/news/2014/08/apache-log4j2[Apache Log4j 2.0 - アップグレードする価値はあるか？]
(August 17, 2014)
* http://d.hatena.ne.jp/Kazuhira/20140628/1403959552[Log4j2を試してみる]
(June 28, 2014)
* http://nabedge.blogspot.jp/2013/10/log4j2.html[log4j2にログを集める]
(October 26, 2013)

== Korean

* http://dveamer.github.io/java/Log4j2.html[Log4j 2 설정하기]
(January 24, 2016)
* http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3:fdl:%EC%84%A4%EC%A0%95_%ED%8C%8C%EC%9D%BC%EC%9D%84_%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94_%EB%B0%A9%EB%B2%95[Log4j 2 환경설정 [설정 파일 사용 시]]
(May 14, 2014)
