This is an automated email from the ASF dual-hosted git repository.
vy pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/logging-log4j-site.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 4efb9bd2db Log4j Scala is retired, add its website
4efb9bd2db is described below
commit 4efb9bd2dbc8c5d6ef8766c46cae709e2c5b1941
Author: Volkan Yazıcı <[email protected]>
AuthorDate: Thu Jan 22 10:42:03 2026 +0100
Log4j Scala is retired, add its website
---
scala/404.html | 115 ++++++++
scala/_/css/site.css | 3 +
scala/_/css/vendor/tabs.css | 110 ++++++++
scala/_/font/roboto-cyrillic-400-italic.woff2 | Bin 0 -> 10292 bytes
scala/_/font/roboto-cyrillic-400-normal.woff2 | Bin 0 -> 9628 bytes
scala/_/font/roboto-cyrillic-500-italic.woff2 | Bin 0 -> 10640 bytes
scala/_/font/roboto-cyrillic-500-normal.woff2 | Bin 0 -> 9840 bytes
scala/_/font/roboto-latin-400-italic.woff | Bin 0 -> 22048 bytes
scala/_/font/roboto-latin-400-italic.woff2 | Bin 0 -> 17368 bytes
scala/_/font/roboto-latin-400-normal.woff | Bin 0 -> 20344 bytes
scala/_/font/roboto-latin-400-normal.woff2 | Bin 0 -> 15744 bytes
scala/_/font/roboto-latin-500-italic.woff | Bin 0 -> 22092 bytes
scala/_/font/roboto-latin-500-italic.woff2 | Bin 0 -> 17336 bytes
scala/_/font/roboto-latin-500-normal.woff | Bin 0 -> 20544 bytes
scala/_/font/roboto-latin-500-normal.woff2 | Bin 0 -> 15920 bytes
scala/_/font/roboto-mono-latin-400-normal.woff | Bin 0 -> 15160 bytes
scala/_/font/roboto-mono-latin-400-normal.woff2 | Bin 0 -> 12312 bytes
scala/_/font/roboto-mono-latin-500-normal.woff | Bin 0 -> 15364 bytes
scala/_/font/roboto-mono-latin-500-normal.woff2 | Bin 0 -> 12532 bytes
scala/_/img/back.svg | 1 +
scala/_/img/caret.svg | 1 +
scala/_/img/chevron.svg | 1 +
scala/_/img/home-o.svg | 1 +
scala/_/img/home.svg | 1 +
scala/_/img/menu.svg | 1 +
scala/_/img/octicons-16.svg | 1 +
scala/_/js/site.js | 6 +
scala/_/js/vendor/highlight.js | 1 +
scala/_/js/vendor/tabs.js | 127 +++++++++
scala/development.html | 191 +++++++++++++
scala/index.html | 239 ++++++++++++++++
scala/release-notes.html | 350 ++++++++++++++++++++++++
scala/sitemap.xml | 15 +
33 files changed, 1164 insertions(+)
diff --git a/scala/404.html b/scala/404.html
new file mode 100644
index 0000000000..8a0c2299e8
--- /dev/null
+++ b/scala/404.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Page Not Found :: Apache Log4j Scala</title>
+ <meta name="generator" content="Antora 3.2.0-alpha.4">
+<link rel="stylesheet" href="/log4j/scala/_/css/site.css">
+<link rel="icon" href="/log4j/scala/_/../_images/favicon.ico"
type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="/log4j/scala/_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header
font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are
too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching
it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red
(unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+ div#retirement-banner {
+ color: #000;
+ background-color: #fff000;
+ width: 100%;
+ padding: 1em;
+ border-bottom: 1px solid #000;
+ text-align: center;
+ }
+</style>
+ </head>
+ <body class="status-404">
+<header class="header">
+ <div id="retirement-banner">
+ <b>This project is not maintained anymore!</b>
+ <a
href="https://lists.apache.org/thread/ky89yqxgd7sccpyozhhlsgok0mov503m">It has
been retired by Apache Logging Services consensus on 2026-01-19.</a>
+ Users are advised to migrate to alternatives.
+ For other inquiries, see <a
href="https://logging.apache.org/support.html">the support policy</a>.
+ </div>
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache Log4j Scala</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject
of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container">
+ <aside class="nav">
+ <div class="panels">
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="/log4j/scala/index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+</nav>
+<div class="edit-this-page"><a
href="https://github.com/apache/logging-log4j-scala/edit/main/src/site/antora/modules//pages/">Edit
this Page</a></div>
+</div>
+ <div class="content">
+<article class="doc">
+<h1 class="page">Page Not Found</h1>
+<div class="paragraph">
+<p>The page you’re looking for does not exist. It may have been moved.
You can return to the <a href="/index.html">start page</a>, or follow one of
the links in the navigation to the left.</p>
+</div>
+<div class="paragraph">
+<p>If you arrived on this page by clicking on a link, please notify the owner
of the site that the link is broken.
+If you typed the URL of this page manually, please double check that you
entered the address correctly.</p>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2026 <a href="https://www.apache.org/">The Apache
Software Foundation</a>.
+ Licensed under the <a
href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License,
Version 2.0</a>.
+ Please read our <a
href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy
policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered
trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="/log4j/scala/_/js/site.js"
data-ui-root-path="/log4j/scala/_"></script>
+<script async src="/log4j/scala/_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="/log4j/scala/_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/scala/_/css/site.css b/scala/_/css/site.css
new file mode 100644
index 0000000000..b502bd6a19
--- /dev/null
+++ b/scala/_/css/site.css
@@ -0,0 +1,3 @@
+@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(../font/roboto-latin-400-normal.woff2)
format("woff2"),url(../font/roboto-latin-400-normal.woff)
format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(../font/roboto-cyrillic-400-normal.woff2)
format("woff2");unicode-range:U+0301,U+0400-04 [...]
+
+/*! Adapted from the GitHub style by Vasily Polovnyov <[email protected]>
*/.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:600}.hljs-literal,.hljs-number,.hljs-tag
.hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:600}.hljs-subst{font-weight:400}.hljs-class
.hljs-title,.hljs-type{color:#458;font-wei [...]
\ No newline at end of file
diff --git a/scala/_/css/vendor/tabs.css b/scala/_/css/vendor/tabs.css
new file mode 100644
index 0000000000..00771c4e21
--- /dev/null
+++ b/scala/_/css/vendor/tabs.css
@@ -0,0 +1,110 @@
+/*! Asciidoctor Tabs | Copyright (c) 2018-present Dan Allen | MIT License */
+.tabs {
+ margin-bottom: 1.25em;
+}
+
+.tablist > ul {
+ display: flex;
+ flex-wrap: wrap;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+.tablist > ul li {
+ align-items: center;
+ background-color: #fff;
+ cursor: pointer;
+ display: flex;
+ font-weight: bold;
+ line-height: 1.5;
+ padding: 0.25em 1em;
+ position: relative;
+}
+
+.tablist > ul li:focus-visible {
+ outline: none;
+}
+
+.tablist.ulist,
+.tablist.ulist > ul li {
+ margin: 0;
+}
+
+.tablist.ulist > ul li + li {
+ margin-left: 0.25em;
+}
+
+.tabs .tablist li::after {
+ content: "";
+ display: block;
+ height: 1px;
+ position: absolute;
+ bottom: -1px;
+ left: 0;
+ right: 0;
+}
+
+.tabs.is-loading .tablist li:not(:first-child),
+.tabs:not(.is-loading) .tablist li:not(.is-selected) {
+ background-color: #f5f5f5;
+}
+
+.tabs.is-loading .tablist li:first-child::after,
+.tabs:not(.is-loading) .tablist li.is-selected::after {
+ background-color: #fff;
+}
+
+/*
+.tabs:not(.is-loading) .tablist li,
+.tabs:not(.is-loading) .tablist li::after {
+ transition: background-color 200ms ease-in-out;
+}
+*/
+
+.tablist > ul p {
+ line-height: inherit;
+ margin: 0;
+}
+
+.tabpanel {
+ background-color: #fff;
+ padding: 1.25em;
+}
+
+.tablist > ul li,
+.tabpanel {
+ border: 1px solid #dcdcdc;
+}
+
+.tablist > ul li {
+ border-bottom: 0;
+}
+
+.tabs.is-loading .tabpanel + .tabpanel,
+.tabs:not(.is-loading) .tabpanel.is-hidden {
+ display: none;
+}
+
+.tabpanel > :first-child {
+ margin-top: 0;
+}
+
+/* #content is a signature of the Asciidoctor standalone HTML output */
+#content .tabpanel > :last-child,
+#content .tabpanel > :last-child > :last-child,
+#content .tabpanel > :last-child > :last-child > li:last-child > :last-child {
+ margin-bottom: 0;
+}
+
+.tablecontainer {
+ overflow-x: auto;
+}
+
+#content .tablecontainer {
+ margin-bottom: 1.25em;
+}
+
+#content .tablecontainer > table.tableblock {
+ margin-bottom: 0;
+}
diff --git a/scala/_/font/roboto-cyrillic-400-italic.woff2
b/scala/_/font/roboto-cyrillic-400-italic.woff2
new file mode 100644
index 0000000000..dd587a2bcb
Binary files /dev/null and b/scala/_/font/roboto-cyrillic-400-italic.woff2
differ
diff --git a/scala/_/font/roboto-cyrillic-400-normal.woff2
b/scala/_/font/roboto-cyrillic-400-normal.woff2
new file mode 100644
index 0000000000..47da362999
Binary files /dev/null and b/scala/_/font/roboto-cyrillic-400-normal.woff2
differ
diff --git a/scala/_/font/roboto-cyrillic-500-italic.woff2
b/scala/_/font/roboto-cyrillic-500-italic.woff2
new file mode 100644
index 0000000000..cbe564b07f
Binary files /dev/null and b/scala/_/font/roboto-cyrillic-500-italic.woff2
differ
diff --git a/scala/_/font/roboto-cyrillic-500-normal.woff2
b/scala/_/font/roboto-cyrillic-500-normal.woff2
new file mode 100644
index 0000000000..cb5834ff83
Binary files /dev/null and b/scala/_/font/roboto-cyrillic-500-normal.woff2
differ
diff --git a/scala/_/font/roboto-latin-400-italic.woff
b/scala/_/font/roboto-latin-400-italic.woff
new file mode 100644
index 0000000000..ebee16b9ed
Binary files /dev/null and b/scala/_/font/roboto-latin-400-italic.woff differ
diff --git a/scala/_/font/roboto-latin-400-italic.woff2
b/scala/_/font/roboto-latin-400-italic.woff2
new file mode 100644
index 0000000000..e1b7a79f91
Binary files /dev/null and b/scala/_/font/roboto-latin-400-italic.woff2 differ
diff --git a/scala/_/font/roboto-latin-400-normal.woff
b/scala/_/font/roboto-latin-400-normal.woff
new file mode 100644
index 0000000000..9eaa94f9bf
Binary files /dev/null and b/scala/_/font/roboto-latin-400-normal.woff differ
diff --git a/scala/_/font/roboto-latin-400-normal.woff2
b/scala/_/font/roboto-latin-400-normal.woff2
new file mode 100644
index 0000000000..020729ef8d
Binary files /dev/null and b/scala/_/font/roboto-latin-400-normal.woff2 differ
diff --git a/scala/_/font/roboto-latin-500-italic.woff
b/scala/_/font/roboto-latin-500-italic.woff
new file mode 100644
index 0000000000..b6ad1c5be1
Binary files /dev/null and b/scala/_/font/roboto-latin-500-italic.woff differ
diff --git a/scala/_/font/roboto-latin-500-italic.woff2
b/scala/_/font/roboto-latin-500-italic.woff2
new file mode 100644
index 0000000000..ae1933f389
Binary files /dev/null and b/scala/_/font/roboto-latin-500-italic.woff2 differ
diff --git a/scala/_/font/roboto-latin-500-normal.woff
b/scala/_/font/roboto-latin-500-normal.woff
new file mode 100644
index 0000000000..d39bb52a5c
Binary files /dev/null and b/scala/_/font/roboto-latin-500-normal.woff differ
diff --git a/scala/_/font/roboto-latin-500-normal.woff2
b/scala/_/font/roboto-latin-500-normal.woff2
new file mode 100644
index 0000000000..29342a8de2
Binary files /dev/null and b/scala/_/font/roboto-latin-500-normal.woff2 differ
diff --git a/scala/_/font/roboto-mono-latin-400-normal.woff
b/scala/_/font/roboto-mono-latin-400-normal.woff
new file mode 100644
index 0000000000..be3eb4c4cb
Binary files /dev/null and b/scala/_/font/roboto-mono-latin-400-normal.woff
differ
diff --git a/scala/_/font/roboto-mono-latin-400-normal.woff2
b/scala/_/font/roboto-mono-latin-400-normal.woff2
new file mode 100644
index 0000000000..f8894bab50
Binary files /dev/null and b/scala/_/font/roboto-mono-latin-400-normal.woff2
differ
diff --git a/scala/_/font/roboto-mono-latin-500-normal.woff
b/scala/_/font/roboto-mono-latin-500-normal.woff
new file mode 100644
index 0000000000..43ca6a1b90
Binary files /dev/null and b/scala/_/font/roboto-mono-latin-500-normal.woff
differ
diff --git a/scala/_/font/roboto-mono-latin-500-normal.woff2
b/scala/_/font/roboto-mono-latin-500-normal.woff2
new file mode 100644
index 0000000000..b4f2bf8c22
Binary files /dev/null and b/scala/_/font/roboto-mono-latin-500-normal.woff2
differ
diff --git a/scala/_/img/back.svg b/scala/_/img/back.svg
new file mode 100644
index 0000000000..bf7d30e9ac
--- /dev/null
+++ b/scala/_/img/back.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0
100 100"><path d="M50.001 9.9L9.9 50 50
90.1l5.656-5.655-30.435-30.442H90.1v-8.006H25.222l30.435-30.44z"/></svg>
\ No newline at end of file
diff --git a/scala/_/img/caret.svg b/scala/_/img/caret.svg
new file mode 100644
index 0000000000..1af41bc6ef
--- /dev/null
+++ b/scala/_/img/caret.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30
30"><path d="M10.187 3l14 12-14 12z" fill="#c1c1c1" stroke="#c1c1c1"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/scala/_/img/chevron.svg b/scala/_/img/chevron.svg
new file mode 100644
index 0000000000..40e962aff3
--- /dev/null
+++ b/scala/_/img/chevron.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30
30"><path d="M3.67 6.59L1.455 8.615 15 23.375l13.545-14.76L26.33 6.59 15
18.76z" fill="#5d5d5d"/></svg>
\ No newline at end of file
diff --git a/scala/_/img/home-o.svg b/scala/_/img/home-o.svg
new file mode 100644
index 0000000000..95d193b772
--- /dev/null
+++ b/scala/_/img/home-o.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><g fill="none"
stroke="#222" stroke-width="4"><path d="M50.02 13.576l-28.58 25.54-.02
47.345h21.506l.025-25.166H57.05l.025
25.166H78.62l.02-47.31-28.62-25.575z"/><path d="M63.815
25.904v-9.217h8.657V33.64zM21.439 39.116l-9.982 8.92m77.125
0l-9.943-8.885"/></g></svg>
\ No newline at end of file
diff --git a/scala/_/img/home.svg b/scala/_/img/home.svg
new file mode 100644
index 0000000000..4e96b3545c
--- /dev/null
+++ b/scala/_/img/home.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><g stroke="#222"
stroke-width="4"><path d="M50.02 13.576l-28.58 25.54-.02
47.345h21.506l.025-25.166H57.05l.025 25.166H78.62l.02-47.31-28.62-25.575z"
fill="#222" fill-rule="evenodd"/><path d="M63.815 25.904v-9.217h8.657V33.64z"
fill="#222" fill-rule="evenodd"/><path d="M21.439 39.116l-9.982 8.92m77.125
0l-9.943-8.885" fill="none"/></g></svg>
\ No newline at end of file
diff --git a/scala/_/img/menu.svg b/scala/_/img/menu.svg
new file mode 100644
index 0000000000..8b43b2e009
--- /dev/null
+++ b/scala/_/img/menu.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M35
19.772h55" fill="none" stroke="#222" stroke-width="8"
stroke-opacity=".941"/><path fill="#222" d="M10 12.272h15v15H10z"/><path d="M43
63.678h45" fill="none" stroke="#222" stroke-width="5"
stroke-opacity=".941"/><path fill="#222" d="M23 58.677h10v10H23z"/><path d="M43
82.727h45" fill="none" stroke="#222" stroke-width="5"
stroke-opacity=".941"/><path fill="#222" d="M23 77.727h10v10H23z"/><path d="M43
44.628h45" fill [...]
\ No newline at end of file
diff --git a/scala/_/img/octicons-16.svg b/scala/_/img/octicons-16.svg
new file mode 100644
index 0000000000..c2215106f1
--- /dev/null
+++ b/scala/_/img/octicons-16.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><desc>Octicons
v11.2.0 by GitHub - https://primer.style/octicons/ - License: MIT</desc><symbol
id="icon-clippy" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M5.75
1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0
00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75
0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75
1.75 0 00-.874-1.515.75.75 0 [...]
\ No newline at end of file
diff --git a/scala/_/js/site.js b/scala/_/js/site.js
new file mode 100644
index 0000000000..5d47fa596e
--- /dev/null
+++ b/scala/_/js/site.js
@@ -0,0 +1,6 @@
+(()=>{var
c,e,o,t,s,r,l=/^sect(\d)$/,i=document.querySelector(".nav-container"),a=document.querySelector(".nav-toggle");function
n(){var
e,t,n=window.location.hash;if(n&&(n.indexOf("%")&&(n=decodeURIComponent(n)),!(e=o.querySelector('.nav-link[href="'+n+'"]')))){n=document.getElementById(n.slice(1));if(n)for(var
i=n,a=document.querySelector("article.doc");(i=i.parentNode)&&i!==a;){var
c=i.id;if((c=c||(c=l.test(i.className))&&(i.firstElementChild||{}).id)&&(e=o.querySelector('.nav-link[hr
[...]
+(()=>{if(m=document.querySelector("aside.toc.sidebar")){if(document.querySelector("body.-toc"))return
m.parentNode.removeChild(m);var
e=parseInt(m.dataset.levels||2,10);if(!(e<0)){var
t="article.doc",d=document.querySelector(t);if(d){for(var
o=[],n=0;n<=e;n++){var i=[t];if(n){for(var
r=1;r<=n;r++)i.push((2===r?".sectionbody>":"")+".sect"+r);i.push("h"+(n+1)+"[id]"+(1<n?":not(.discrete)":""))}else
i.push("h1[id].sect0");o.push(i.join(">"))}f=o.join(","),u=d.parentNode;var
a,c=[].slice.cal [...]
+(()=>{var o,n,i=document.querySelector("article.doc");function r(e){return
e&&(~e.indexOf("%")?decodeURIComponent(e):e).slice(1)}function
c(e){if(e){if(e.altKey||e.ctrlKey)return;window.location.hash="#"+this.id,e.preventDefault()}var
t=function e(t,o){return
i.contains(t)?e(t.offsetParent,t.offsetTop+o):o}(this,0)-o.getBoundingClientRect().bottom;!1===e&&n?window.scrollTo({left:0,top:t,behavior:"instant"}):window.scrollTo(0,t)}i&&(o=document.querySelector(".toolbar"),n="scrollTo"in
docu [...]
+(()=>{var t,e=document.querySelector(".page-versions
.version-menu-toggle");e&&(t=document.querySelector(".page-versions"),e.addEventListener("click",function(e){t.classList.toggle("is-active"),e.stopPropagation()}),document.documentElement.addEventListener("click",function(){t.classList.remove("is-active")}))})();
+(()=>{var
i=document.querySelector(".navbar-burger");i&&i.addEventListener("click",function(t){t.stopPropagation(),document.documentElement.classList.toggle("is-clipped--navbar"),i.setAttribute("aria-expanded",this.classList.toggle("is-active"));t=document.getElementById(this.getAttribute("aria-controls")||this.dataset.target);{var
e;t.classList.toggle("is-active")&&(t.style.maxHeight="",e=window.innerHeight-Math.round(t.getBoundingClientRect().top),parseInt(window.getComputedStyle(t).ma
[...]
+(()=>{var o=/^\$ (\S[^\\\n]*(\\\n(?!\$ )[^\\\n]*)*)(?=\n|$)/gm,s=/( ) *\\\n
*|\\\n( ?) */g,l=/
+$/gm,e=(document.getElementById("site-script")||{dataset:{}}).dataset,d=window.navigator.clipboard,r=e.svgAs,p=(null==e.uiRootPath?window:e).uiRootPath||".";[].slice.call(document.querySelectorAll(".doc
pre.highlight, .doc .literalblock pre")).forEach(function(e){var
t,a,n,c;if(e.classList.contains("highlight"))(i=(t=e.querySelector("code")).dataset.lang)&&"console"!==i&&((n=document.createEle
[...]
\ No newline at end of file
diff --git a/scala/_/js/vendor/highlight.js b/scala/_/js/vendor/highlight.js
new file mode 100644
index 0000000000..3f0bc76f65
--- /dev/null
+++ b/scala/_/js/vendor/highlight.js
@@ -0,0 +1 @@
+(()=>{function
e(e){return{aliases:["adoc"],contains:[e.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),e.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"section",relevance:10,variants:[{begin:"^(={1,5})
.+?(
\\1)?$"},{begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{className:"meta",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"meta",begin:"^\\[.+?\\]$",relevance:0},{classN
[...]
\ No newline at end of file
diff --git a/scala/_/js/vendor/tabs.js b/scala/_/js/vendor/tabs.js
new file mode 100644
index 0000000000..f8966c0247
--- /dev/null
+++ b/scala/_/js/vendor/tabs.js
@@ -0,0 +1,127 @@
+;(function () { /*! Asciidoctor Tabs | Copyright (c) 2018-present Dan Allen |
MIT License */
+ 'use strict'
+
+ var config = (document.currentScript || {}).dataset || {}
+ var forEach = Array.prototype.forEach
+
+ init(document.querySelectorAll('.tabs'))
+
+ function init (tabsBlocks) {
+ if (!tabsBlocks.length) return
+ forEach.call(tabsBlocks, function (tabs) {
+ var syncIds = tabs.classList.contains('is-sync') ? {} : undefined
+ var tablist = tabs.querySelector('.tablist ul')
+ tablist.setAttribute('role', 'tablist')
+ var start
+ forEach.call(tablist.querySelectorAll('li'), function (tab, idx) {
+ tab.tabIndex = -1
+ tab.setAttribute('role', tab.classList.add('tab') || 'tab')
+ var id, anchor, syncId
+ if (!(id = tab.id) && (anchor = tab.querySelector('a[id]'))) {
+ id = tab.id = anchor.parentNode.removeChild(anchor).id
+ }
+ var panel = id && tabs.querySelector('.tabpanel[aria-labelledby~="' +
id + '"]')
+ if (!panel) return idx ? undefined : toggleSelected(tab, true) //
invalid state
+ syncIds && (((syncId = tab.textContent.trim()) in syncIds) ? (syncId =
undefined) : true) &&
+ (syncIds[(tab.dataset.syncId = syncId)] = tab)
+ idx || (syncIds && (start = { tab: tab, panel: panel })) ?
toggleHidden(panel, true) : toggleSelected(tab, true)
+ tab.setAttribute('aria-controls', panel.id)
+ panel.setAttribute('role', 'tabpanel')
+ var onClick = syncId === undefined ? activateTab : activateTabSync
+ tab.addEventListener('click', onClick.bind({ tabs: tabs, tab: tab,
panel: panel }))
+ })
+ if (!tabs.closest('.tabpanel')) {
+ forEach.call(tabs.querySelectorAll('.tabpanel table.tableblock'),
function (table) {
+ var container = Object.assign(document.createElement('div'), {
className: 'tablecontainer' })
+ table.parentNode.insertBefore(container, table).appendChild(table)
+ })
+ }
+ if (start) {
+ var syncGroupId
+ for (var i = 0, lst = tabs.classList, len = lst.length, className; i
!== len; i++) {
+ if (!(className = lst.item(i)).startsWith('data-sync-group-id='))
continue
+ tabs.dataset.syncGroupId = syncGroupId = lst.remove(className) ||
className.slice(19).replace(/\u00a0/g, ' ')
+ break
+ }
+ if (syncGroupId === undefined) tabs.dataset.syncGroupId = syncGroupId
= Object.keys(syncIds).sort().join('|')
+ var preferredSyncId = 'syncStorageKey' in config &&
+ window[(config.syncStorageScope || 'local') +
'Storage'].getItem(config.syncStorageKey + '-' + syncGroupId)
+ var tab = preferredSyncId && syncIds[preferredSyncId]
+ tab && Object.assign(start, { tab: tab, panel:
document.getElementById(tab.getAttribute('aria-controls')) })
+ toggleSelected(start.tab, true) || toggleHidden(start.panel, false)
+ }
+ })
+ onHashChange()
+ toggleClassOnEach(tabsBlocks, 'is-loading', 'remove')
+ window.setTimeout(toggleClassOnEach.bind(null, tabsBlocks, 'is-loaded',
'add'), 0)
+ window.addEventListener('hashchange', onHashChange)
+ }
+
+ function activateTab (e) {
+ var tab = this.tab
+ var tabs = this.tabs || (this.tabs = tab.closest('.tabs'))
+ var panel = this.panel || (this.panel =
document.getElementById(tab.getAttribute('aria-controls')))
+ querySelectorWithSiblings(tabs, '.tablist .tab', 'tab').forEach(function
(el) {
+ toggleSelected(el, el === tab)
+ })
+ querySelectorWithSiblings(tabs, '.tabpanel', 'tabpanel').forEach(function
(el) {
+ toggleHidden(el, el !== panel)
+ })
+ if (!this.isSync && 'syncStorageKey' in config && 'syncGroupId' in
tabs.dataset) {
+ var storageKey = config.syncStorageKey + '-' + tabs.dataset.syncGroupId
+ window[(config.syncStorageScope || 'local') +
'Storage'].setItem(storageKey, tab.dataset.syncId)
+ }
+ if (!e) return
+ var loc = window.location
+ var hashIdx = loc.hash ? loc.href.indexOf('#') : -1
+ if (~hashIdx) window.history.replaceState(null, '', loc.href.slice(0,
hashIdx))
+ e.preventDefault()
+ }
+
+ function activateTabSync (e) {
+ activateTab.call(this, e)
+ var thisTabs = this.tabs
+ var thisTab = this.tab
+ var initialY = thisTabs.getBoundingClientRect().y
+ forEach.call(document.querySelectorAll('.tabs'), function (tabs) {
+ if (tabs === thisTabs || tabs.dataset.syncGroupId !==
thisTabs.dataset.syncGroupId) return
+ querySelectorWithSiblings(tabs, '.tablist .tab', 'tab').forEach(function
(tab) {
+ if (tab.dataset.syncId === thisTab.dataset.syncId) activateTab.call({
tabs: tabs, tab: tab, isSync: true })
+ })
+ })
+ var shiftedBy = thisTabs.getBoundingClientRect().y - initialY
+ if (shiftedBy && (shiftedBy = Math.round(shiftedBy))) window.scrollBy({
top: shiftedBy, behavior: 'instant' })
+ }
+
+ function querySelectorWithSiblings (scope, selector, siblingClass) {
+ var el = scope.querySelector(selector)
+ if (!el) return []
+ var result = [el]
+ while ((el = el.nextElementSibling) &&
el.classList.contains(siblingClass)) result.push(el)
+ return result
+ }
+
+ function toggleClassOnEach (elements, className, method) {
+ forEach.call(elements, function (el) {
+ el.classList[method](className)
+ })
+ }
+
+ function toggleHidden (el, state) {
+ el.classList[(el.hidden = state) ? 'add' : 'remove']('is-hidden')
+ }
+
+ function toggleSelected (el, state) {
+ el.setAttribute('aria-selected', '' + state)
+ el.classList[state ? 'add' : 'remove']('is-selected')
+ el.tabIndex = state ? 0 : -1
+ }
+
+ function onHashChange () {
+ var id = window.location.hash.slice(1)
+ if (!id) return
+ var tab = document.getElementById(~id.indexOf('%') ?
decodeURIComponent(id) : id)
+ if (!(tab && tab.classList.contains('tab'))) return
+ 'syncId' in tab.dataset ? activateTabSync.call({ tab: tab }) :
activateTab.call({ tab: tab })
+ }
+})()
diff --git a/scala/development.html b/scala/development.html
new file mode 100644
index 0000000000..85aaaf1cf3
--- /dev/null
+++ b/scala/development.html
@@ -0,0 +1,191 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Development :: Apache Log4j Scala</title>
+ <link rel="canonical"
href="https://logging.apache.org/log4j/scala/development.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.4">
+<link rel="stylesheet" href="./_/css/site.css">
+<link rel="icon" href="./_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header
font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are
too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching
it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red
(unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+ div#retirement-banner {
+ color: #000;
+ background-color: #fff000;
+ width: 100%;
+ padding: 1em;
+ border-bottom: 1px solid #000;
+ text-align: center;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <div id="retirement-banner">
+ <b>This project is not maintained anymore!</b>
+ <a
href="https://lists.apache.org/thread/ky89yqxgd7sccpyozhhlsgok0mov503m">It has
been retired by Apache Logging Services consensus on 2026-01-19.</a>
+ Users are advised to migrate to alternatives.
+ For other inquiries, see <a
href="https://logging.apache.org/support.html">the support policy</a>.
+ </div>
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache Log4j Scala</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject
of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all"
style="display: none"></button>
+ <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item is-current-page" data-depth="1">
+ <a class="nav-link" href="development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link"
href="https://logging.apache.org/download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link"
href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link"
href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="development.html">Development</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a
href="https://github.com/apache/logging-log4j-scala/edit/main/src/site/antora/modules/ROOT/pages/development.adoc">Edit
this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">Development</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Log4j Scala API uses <a
href="https://github.com/apache/logging-log4j-scala">GitHub</a> for source code
management.</p>
+</div>
+<div class="paragraph">
+<p>The project requires two Java compilers to build:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p><code>8</code> (required for Scala <code>2.10</code> and
<code>2.11</code>)</p>
+</li>
+<li>
+<p>one matching the <code>[17,18)</code> range.</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>You can build and verify sources using:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-bash hljs"
data-lang="bash">./mvnw verify</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>You can build and view the website as follows:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-bash hljs"
data-lang="bash">./mvnw -N site</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>You can view the generated website with a browser by pointing it to
<code>target/site</code> directory.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="release-instructions"><a class="anchor"
href="#release-instructions"></a>Release instructions</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Log4j Scala API employs the CI/CD foundation provided by the <a
href="https://logging.apache.org/logging-parent"><code>logging-parent</code></a>.
+You can simply use its release instructions.</p>
+</div>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2026 <a href="https://www.apache.org/">The Apache
Software Foundation</a>.
+ Licensed under the <a
href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License,
Version 2.0</a>.
+ Please read our <a
href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy
policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered
trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
+<script async src="./_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="./_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/scala/index.html b/scala/index.html
new file mode 100644
index 0000000000..7e7cbe3dba
--- /dev/null
+++ b/scala/index.html
@@ -0,0 +1,239 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Log4j Scala API :: Apache Log4j Scala</title>
+ <link rel="canonical"
href="https://logging.apache.org/log4j/scala/index.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.4">
+<link rel="stylesheet" href="./_/css/site.css">
+<link rel="icon" href="./_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header
font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are
too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching
it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red
(unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+ div#retirement-banner {
+ color: #000;
+ background-color: #fff000;
+ width: 100%;
+ padding: 1em;
+ border-bottom: 1px solid #000;
+ text-align: center;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <div id="retirement-banner">
+ <b>This project is not maintained anymore!</b>
+ <a
href="https://lists.apache.org/thread/ky89yqxgd7sccpyozhhlsgok0mov503m">It has
been retired by Apache Logging Services consensus on 2026-01-19.</a>
+ Users are advised to migrate to alternatives.
+ For other inquiries, see <a
href="https://logging.apache.org/support.html">the support policy</a>.
+ </div>
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache Log4j Scala</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject
of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all"
style="display: none"></button>
+ <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link"
href="https://logging.apache.org/download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link"
href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link"
href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="index.html" class="home-link is-current"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="index.html">Log4j Scala API</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a
href="https://github.com/apache/logging-log4j-scala/edit/main/src/site/antora/modules/ROOT/pages/index.adoc">Edit
this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">Log4j Scala API</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Log4j Scala API provides a Scala-friendly interface to log against <a
href="https://logging.apache.org/log4j/2.x/manual/api-separation.html">the
Log4j API</a>.
+It supports Scala <code>2.10</code>, <code>2.11</code>, <code>2.12</code>,
<code>2.13</code>, and <code>3</code>.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>This is just a logging API.
+Your application still needs to have a logging backend (e.g., <a
href="https://logging.apache.org/log4j/2.x">Log4j</a>) configured.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="dependencies"><a class="anchor"
href="#dependencies"></a>Dependencies</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You need to have the <code>org.apache.logging.log4j:log4j-api-scala</code>
dependency in your classpath:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-sbt hljs"
data-lang="sbt">libraryDependencies ++= Seq(
+ "org.apache.logging.log4j" %% "log4j-api-scala" % "13.2.0-SNAPSHOT"
+)</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Java module name is set to <code>org.apache.logging.log4j.api.scala</code>.
+OSGi <code>Bundle-SymbolicName</code>s are set to
<code>org.apache.logging.log4j.api.scala.2.10</code>,
<code>org.apache.logging.log4j.api.scala.2.11</code>, and so on.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="usage"><a class="anchor" href="#usage"></a>Usage</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Using the Scala API is as simple as mixing in the <code>Logging</code>
trait to your class:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-scala hljs"
data-lang="scala">import org.apache.logging.log4j.scala.Logging
+import org.apache.logging.log4j.Level
+
+class MyClass extends BaseClass with Logging {
+
+ def doStuff(): Unit = {
+ logger.info("Doing stuff")
+ }
+
+ def doStuffWithLevel(level: Level): Unit = {
+ logger(level, "Doing stuff with arbitrary level")
+ }
+
+ def doStuffWithUser(user: User): Unit = {
+ logger.info(s"Doing stuff with ${user.getName}.")
+ }
+
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="params"><a class="anchor" href="#params"></a>Parameter
substitution</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Unlike in Java, Scala provides native functionality for string
interpolation <a
href="https://docs.scala-lang.org/overviews/core/string-interpolation.html">beginning
in Scala 2.10</a>.
+As all logger calls are implemented as macros, using string interpolation
directly does not require additional if checks:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-scala hljs"
data-lang="scala">logger.debug(s"Logging in user ${user.getName} with birthday
${user.calcBirthday}")</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="logger-names"><a class="anchor" href="#logger-names"></a>Logger
names</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Most logging implementations use a hierarchical scheme for matching logger
names with logging configuration.
+In this scheme the logger name hierarchy is represented by <code>.</code>
characters in the logger name, in a fashion very similar to the hierarchy used
for Java/Scala package names.
+The <code>Logger</code> property added by the <code>Logging</code> trait
follows this convention: the trait ensures the <code>Logger</code> is
automatically named according to the class it is being used in.</p>
+</div>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2026 <a href="https://www.apache.org/">The Apache
Software Foundation</a>.
+ Licensed under the <a
href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License,
Version 2.0</a>.
+ Please read our <a
href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy
policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered
trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
+<script async src="./_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="./_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/scala/release-notes.html b/scala/release-notes.html
new file mode 100644
index 0000000000..a7fbdc1308
--- /dev/null
+++ b/scala/release-notes.html
@@ -0,0 +1,350 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Release notes :: Apache Log4j Scala</title>
+ <link rel="canonical"
href="https://logging.apache.org/log4j/scala/release-notes.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.4">
+<link rel="stylesheet" href="./_/css/site.css">
+<link rel="icon" href="./_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header
font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are
too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching
it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red
(unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+ div#retirement-banner {
+ color: #000;
+ background-color: #fff000;
+ width: 100%;
+ padding: 1em;
+ border-bottom: 1px solid #000;
+ text-align: center;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <div id="retirement-banner">
+ <b>This project is not maintained anymore!</b>
+ <a
href="https://lists.apache.org/thread/ky89yqxgd7sccpyozhhlsgok0mov503m">It has
been retired by Apache Logging Services consensus on 2026-01-19.</a>
+ Users are advised to migrate to alternatives.
+ For other inquiries, see <a
href="https://logging.apache.org/support.html">the support policy</a>.
+ </div>
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache Log4j Scala</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject
of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all"
style="display: none"></button>
+ <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="development.html">Development</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="1">
+ <a class="nav-link" href="release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link"
href="https://logging.apache.org/download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link"
href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link"
href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="release-notes.html">Release notes</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a
href="https://github.com/apache/logging-log4j-scala/edit/main/src/site/antora/modules/ROOT/pages/release-notes.adoc">Edit
this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="1">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">Release notes</h1>
+<div class="sect1">
+<h2 id="release-notes-13-x-x"><a class="anchor"
href="#release-notes-13-x-x"></a>13.x.x</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This minor release contains various bug fixes and improvements.</p>
+</div>
+<div class="sect2">
+<h3 id="release-notes-13-x-x-changed"><a class="anchor"
href="#release-notes-13-x-x-changed"></a>Changed</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Website is migrated to Antora (<a
href="https://github.com/apache/logging-log4j2/pull/2443">apache/logging-log4j2#2443</a>)</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="release-notes-13-x-x-updated"><a class="anchor"
href="#release-notes-13-x-x-updated"></a>Updated</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Update <code>org.apache.logging.log4j:log4j-bom</code> to version
<code>2.24.3</code> (<a
href="https://github.com/apache/logging-log4j-scala/pull/68">68</a>)</p>
+</li>
+<li>
+<p>Update <code>org.apache.logging:logging-parent</code> to version
<code>12.1.1</code> (<a
href="https://github.com/apache/logging-log4j-scala/pull/99">99</a>)</p>
+</li>
+<li>
+<p>Update Scala <code>2.12</code> baseline to <code>2.12.21</code> (<a
href="https://github.com/apache/logging-log4j-scala/pull/99">99</a>)</p>
+</li>
+<li>
+<p>Update Scala <code>2.13</code> baseline to <code>2.13.18</code> (<a
href="https://github.com/apache/logging-log4j-scala/pull/99">99</a>)</p>
+</li>
+<li>
+<p>Update Scala <code>3</code> baseline to <code>3.7.4</code> (<a
href="https://github.com/apache/logging-log4j-scala/pull/99">99</a>)</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="release-notes-13-1-0"><a class="anchor"
href="#release-notes-13-1-0"></a>13.1.0</h2>
+<div class="sectionbody">
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Release date</dt>
+<dd>
+<p>2024-02-01</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>This minor release contains a bug fix, Software Bill of Materials (SBOM)
generation, and some dependency updates.</p>
+</div>
+<div class="sect2">
+<h3 id="release-notes-13-1-0-added"><a class="anchor"
href="#release-notes-13-1-0-added"></a>Added</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Start generating CycloneDX SBOM</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="release-notes-13-1-0-fixed"><a class="anchor"
href="#release-notes-13-1-0-fixed"></a>Fixed</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Fix recursive inlining issues in Scala 3 macros (<a
href="https://github.com/apache/logging-log4j-scala/pull/40">40</a>)</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="release-notes-13-1-0-updated"><a class="anchor"
href="#release-notes-13-1-0-updated"></a>Updated</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Update <code>org.apache.logging.log4j:log4j-bom</code> to version
<code>2.22.1</code> (<a
href="https://github.com/apache/logging-log4j-scala/pull/43">43</a>)</p>
+</li>
+<li>
+<p>Update <code>org.apache.logging:logging-parent</code> to version
<code>10.6.0</code> (<a
href="https://github.com/apache/logging-log4j-scala/pull/44">44</a>)</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="release-notes-13-0-0"><a class="anchor"
href="#release-notes-13-0-0"></a>13.0.0</h2>
+<div class="sectionbody">
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Release date</dt>
+<dd>
+<p>2023-10-10</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>The highlights of this major release are Scala 3 support, OSGi and JPMS
descriptors, and the switch to <a href="https://semver.org">semantic
versioning</a>.</p>
+</div>
+<div class="paragraph">
+<p>Note that this release is still binary backward compatible with the earlier
release <code>12.0</code>.
+Though we needed to bump the major version number for the semantic versioning
switch to avoid the confusion related with version ordering.</p>
+</div>
+<div class="sect2">
+<h3 id="release-notes-13-0-0-added"><a class="anchor"
href="#release-notes-13-0-0-added"></a>Added</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Add support for Scala 3 (<a
href="https://issues.apache.org/jira/browse/LOG4J2-3184">LOG4J2-3184</a>, <a
href="https://github.com/apache/logging-log4j-scala/pull/26">26</a>)</p>
+</li>
+<li>
+<p>Add OSGi and JPMS support</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="release-notes-13-0-0-changed"><a class="anchor"
href="#release-notes-13-0-0-changed"></a>Changed</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Bump the Java version to 17 (Scala 2.10 and 2.11 targets still require Java
8 that build switches to using <code>maven-toolchains-plugin</code>)</p>
+</li>
+<li>
+<p>Switch the CI to GitHub Actions</p>
+</li>
+<li>
+<p>Switch from <code>sbt</code> to Maven to take advantage of
<code>logging-parent</code> conveniences</p>
+</li>
+<li>
+<p>Switch to semantic versioning</p>
+</li>
+<li>
+<p>Update <code>org.apache.logging.log4j:log4j-api</code> version to
<code>2.20.0</code></p>
+</li>
+<li>
+<p>Update <code>org.apache.logging:logging-parent</code> to version
<code>10.1.1</code></p>
+</li>
+<li>
+<p>Start using <code>log4j-changelog</code></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="release-notes-12-0"><a class="anchor"
href="#release-notes-12-0"></a>12.0</h2>
+<div class="sectionbody">
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Release date</dt>
+<dd>
+<p>2020-05-03</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>This is the first release of the project.</p>
+</div>
+<div class="sect2">
+<h3 id="release-notes-12-0-added"><a class="anchor"
href="#release-notes-12-0-added"></a>Added</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Add Jenkins pipeline for <code>sbt</code> build (<a
href="https://issues.apache.org/jira/browse/LOG4J2-2291">LOG4J2-2291</a>)</p>
+</li>
+<li>
+<p>Add required license files to <code>sbt</code> output artifacts (<a
href="https://issues.apache.org/jira/browse/LOG4J2-2293">LOG4J2-2293</a>)</p>
+</li>
+<li>
+<p>Add <code>apache-rat-plugin</code> reports (<a
href="https://issues.apache.org/jira/browse/LOG4J2-2294">LOG4J2-2294</a>)</p>
+</li>
+<li>
+<p>Add OSGi descriptors (<a
href="https://issues.apache.org/jira/browse/LOG4J2-2295">LOG4J2-2295</a>)</p>
+</li>
+<li>
+<p>Add <code>sbt-site</code> plugin and website configuration (<a
href="https://issues.apache.org/jira/browse/LOG4J2-2296">LOG4J2-2296</a>)</p>
+</li>
+<li>
+<p>Add changelog to site (<a
href="https://issues.apache.org/jira/browse/LOG4J2-2298">LOG4J2-2298</a>)</p>
+</li>
+<li>
+<p>Add support for Scala 2.13 (<a
href="https://issues.apache.org/jira/browse/LOG4J2-2668">LOG4J2-2668</a>)</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="release-notes-12-0-changed"><a class="anchor"
href="#release-notes-12-0-changed"></a>Changed</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Switch from <code>sbt</code> to Maven to take advantage of
<code>logging-parent</code> conveniences (<a
href="https://issues.apache.org/jira/browse/LOG4J2-1882">LOG4J2-1882</a>)</p>
+</li>
+<li>
+<p>Add release distribution script (<a
href="https://issues.apache.org/jira/browse/LOG4J2-2303">LOG4J2-2303</a>)</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2026 <a href="https://www.apache.org/">The Apache
Software Foundation</a>.
+ Licensed under the <a
href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License,
Version 2.0</a>.
+ Please read our <a
href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy
policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered
trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
+<script async src="./_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="./_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/scala/sitemap.xml b/scala/sitemap.xml
new file mode 100644
index 0000000000..a43530333e
--- /dev/null
+++ b/scala/sitemap.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
+<url>
+<loc>https://logging.apache.org/log4j/scala/development.html</loc>
+<lastmod>2026-01-22T09:28:36.099Z</lastmod>
+</url>
+<url>
+<loc>https://logging.apache.org/log4j/scala/index.html</loc>
+<lastmod>2026-01-22T09:28:36.099Z</lastmod>
+</url>
+<url>
+<loc>https://logging.apache.org/log4j/scala/release-notes.html</loc>
+<lastmod>2026-01-22T09:28:36.099Z</lastmod>
+</url>
+</urlset>