<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Apache Logging Services</title>

    <link href="css/asciidoctor-default.css" rel="stylesheet" type="text/css" />
    <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css" />
    <link href="css/site.css" rel="stylesheet" type="text/css" />

    <script src="js/jquery.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/site.js"></script>

    <!-- Google Analytics -->
    <script type="text/javascript">
        var _gaq = _gaq || [];
        _gaq.push(['_setAccount', '{{ googleAnalyticsID }}']);
        _gaq.push (['_gat._anonymizeIp']);
        _gaq.push(['_trackPageview']);

        (function() {
            var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
        })();
    </script>
</head>

<body>
<div class="navbar">
    <div class="navbar-inner">
        <div class="container">
            <a class="brand" href="https://logging.apache.org">Apache Logging Services&trade;</a>
            <ul class="nav">
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">About<b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="guidelines.html">Guidelines</a></li>
                        <li><a href="charter.html">Charter</a></li>
                        <li><a href="team-list.html">Team</a></li>
                        <li><a href="mailing-lists.html">Mailing lists</a></li>
                        <li><a target="_blank" href="https://cwiki.apache.org/confluence/display/LOGGING/Home">Wiki</a>
                        </li>
                    </ul>
                </li>
            </ul>
            <ul class="nav">
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Projects<b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a target="_blank" href="chainsaw/2.x/index.html">Apache chainsaw</a></li>
                        <li><a target="_blank" href="log4cxx/latest_stable/index.html">Apache log4cxx</a></li>
                        <li><a target="_blank" href="log4j/2.x/index.html">Apache log4j</a></li>
                        <li><a target="_blank" href="log4j-audit/latest/index.html">Apache log4j-audit</a></li>
                        <li><a target="_blank" href="log4j/kotlin/index.html">Apache log4j Kotlin API</a></li>
                        <li><a target="_blank" href="log4j/scala/index.html">Apache log4j Scala API</a></li>
                        <li><a target="_blank" href="log4net/2.x/index.html">Apache log4net</a></li>
                        <li><a target="_blank" href="log4php/latest/index.html">Apache log4php</a></li>
                    </ul>
                </li>
            </ul>
            <ul class="nav">
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dormant<b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a target="_blank" href="log4j/1.2/index.html">Apache log4j 1.x</a></li>
                        <li><a target="_blank" href="log4j/extras/index.html">Apache log4j 1.x extras</a></li>
                    </ul>
                </li>
            </ul>

            <ul class="nav pull-right">
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache<b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a target="_blank" href="https://www.apache.org/">Home</a></li>
                        <li><a target="_blank" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                        <li><a target="_blank" href="https://www.apache.org/licenses/">License</a></li>
                        <li><a target="_blank" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                        <li><a target="_blank" href="https://www.apache.org/events/current-event.html">Current Events</a></li>
                        <li><a target="_blank" href="https://www.apache.org/security/">Security</a></li>
                    </ul>
                </li>
            </ul>
        </div>
    </div>
</div>

<div class="container">
    <div class="content">
        <h1>Mailing lists</h1>
<p>These are the mailing lists that have been established for the Apache Logging Services project.</p>
<p>For questions regarding individual logging projects, please find use the mailing lists defined<br />
on the project site.</p>
<h3><a href="&#109;a&#105;&#x6c;&#x74;&#x6f;&#x3a;&#103;&#x65;&#x6e;e&#114;&#x61;&#108;@&#108;&#111;&#103;g&#105;n&#x67;&#46;&#x61;&#x70;&#97;&#99;h&#x65;&#x2e;o&#114;&#x67;">&#x67;&#101;&#110;&#101;&#114;&#97;&#x6c;&#x40;&#108;&#111;&#103;&#103;&#x69;&#110;&#103;&#46;&#x61;&#112;&#97;&#x63;&#104;&#x65;&#x2e;&#x6f;&#x72;&#103;</a></h3>
<p>General and public discussion related to the Logging project and it's children. Anyone may<br />
subscribe; only subscribers may post.</p>
<ul>
<li><a href="mailto:%67%65%6E%65%72%61%6C%40%6C%6F%67%67%69%6E%67%2E%61%70%61%63%68%65%2E%6F%72%67">Post to list</a></li>
<li><a href="mailto:%67%65%6E%65%72%61%6C%2D%73%75%62%73%63%72%69%62%65%40%6C%6F%67%67%69%6E%67%2E%61%70%61%63%68%65%2E%6F%72%67">Subscribe to list</a></li>
<li><a href="mailto:%67%65%6E%65%72%61%6C%2D%75%6E%73%75%62%73%63%72%69%62%65%40%6C%6F%67%67%69%6E%67%2E%61%70%61%63%68%65%2E%6F%72%67">Unsubscribe from list</a></li>
</ul>
<p>Public archives:</p>
<ul>
<li><a href="http://mail-archives.apache.org/mod_mbox/logging-general/">Apache archive</a></li>
<li><a href="http://markmail.org/search/?q=list%3Aorg.apache.logging.general">Markmail archive</a></li>
</ul>
<h3><a href="&#x6d;&#97;&#105;l&#116;&#x6f;&#x3a;d&#x65;&#118;&#64;&#108;&#x6f;&#103;g&#x69;&#110;&#103;&#x2e;&#97;&#x70;&#97;&#99;&#104;&#x65;&#x2e;&#x6f;&#114;&#103;">&#100;&#x65;&#x76;&#64;&#108;o&#x67;g&#105;&#110;g&#x2e;&#x61;&#x70;&#97;&#99;h&#101;&#46;&#x6f;r&#103;</a></h3>
<p>All logging projects share a common mailing list where development of each project is discussed.<br />
Please use subject tags like [log4j] when starting a new thread.</p>
<ul>
<li><a href="mailto:%64%65%76%2D%73%75%62%73%63%72%69%62%65%40%6C%6F%67%67%69%6E%67%2E%61%70%61%63%68%65%2E%6F%72%67">Subscribe to list</a></li>
<li><a href="mailto:%64%65%76%2D%75%6E%73%75%62%73%63%72%69%62%65%40%6C%6F%67%67%69%6E%67%2E%61%70%61%63%68%65%2E%6F%72%67">Unsubscribe from list</a></li>
</ul>
<p>Public archives:</p>
<ul>
<li><a href="https://lists.apache.org/list.html?dev%40logging.apache.org">Apache archive</a></li>
<li><a href="http://mail-archives.apache.org/mod_mbox/logging-dev/">Apache archive</a></li>
<li><a href="http://markmail.org/search/?q=list%3Aorg.apache.logging.dev">Markmail archive</a></li>
</ul>
<h3><a href="&#109;&#97;&#x69;&#108;t&#111;:co&#109;&#x6d;&#x69;&#x74;s&#x40;lo&#103;&#103;&#105;&#110;g&#46;&#97;&#112;&#x61;&#x63;&#x68;&#x65;&#46;&#111;r&#x67;">&#99;o&#x6d;&#x6d;i&#116;&#115;&#64;l&#111;&#x67;g&#x69;&#x6e;g.a&#x70;&#x61;&#99;h&#101;&#x2e;&#111;&#114;&#x67;</a></h3>
<p>When changes are made to the source code repository, the commit messages are automatically sent to<br />
this list. Anyone may subscribe; posting is not allowed. The Reply-To is set to the<br />
logging-general list, so if you reply to a message that's where your reply is going to end up.</p>
<ul>
<li><a href="mailto:%63%6F%6D%6D%69%74%73%2D%73%75%62%73%63%72%69%62%65%40%6C%6F%67%67%69%6E%67%2E%61%70%61%63%68%65%2E%6F%72%67">Subscribe to list</a></li>
<li><a href="mailto:%63%6F%6D%6D%69%74%73%2D%75%6E%73%75%62%73%63%72%69%62%65%40%6C%6F%67%67%69%6E%67%2E%61%70%61%63%68%65%2E%6F%72%67">Unsubscribe from list</a></li>
</ul>
<p>Public archives:</p>
<ul>
<li><a href="http://mail-archives.apache.org/mod_mbox/logging-commits/">Apache archive</a></li>
<li><a href="http://markmail.org/search/?q=list%3Aorg.apache.logging.commits">Markmail archive</a></li>
</ul>
<h3><a href="m&#97;&#105;&#x6c;&#x74;o&#58;&#x70;&#114;&#x69;v&#97;te&#64;&#x6c;&#x6f;g&#x67;&#x69;&#110;&#x67;.&#97;p&#x61;&#99;he&#46;o&#x72;&#103;">p&#x72;&#105;&#x76;&#97;te@l&#x6f;&#103;&#103;i&#110;g&#46;&#97;&#x70;&#97;&#99;&#x68;&#x65;&#x2e;&#111;&#114;&#103;</a></h3>
<p>Private list for the project management committee. It is not open to public subscription. This list should be used<br />
only for the discussion of confidential topics. As much business as possible should be conducted in public on<br />
the general list.</p>
<ul>
<li><a href="mailto:%70%72%69%76%61%74%65%40%6C%6F%67%67%69%6E%67%2E%61%70%61%63%68%65%2E%6F%72%67">Post to list</a></li>
</ul>
<p>There are no public archives.</p>

    </div>

<div class="footer">
        <p>
            Copyright © 2017-2020 <a href="https://www.apache.org" target="external">The Apache Software Foundation</>.
            Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0"
            target="external">Apache Software License, Version 2.0</> Please read our "privacy policy":privacy-policy.html.
        </p><p>
            Apache, Apache chainsaw, Apache log4cxx, Apache log4j, Apache log4net, Apache log4php and the Apache
            feather logo are 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><p>
            Site powered by <a href="https://getbootstrap.com/" target="external">Bootstrap</a>
            and <a href="https://jquery.com/" target="external">jQuery</a>.
        </p>
</div>
</div>
</body>
</html>
