////
    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://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://www.baeldung.com/log4j2-appenders-layouts-filters[Intro to Log4j2 - Appenders, Layouts and Filters]
(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)
