logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matt Sicker (JIRA)" <j...@apache.org>
Subject [jira] (LOG4J2-1431) Simplify log4j system property naming scheme
Date Sun, 29 Jan 2017 17:22:43 GMT
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"
/> <base href="https://issues.apache.org/jira" /> 
        <title>Message Title</title> 
    </head> 
    <body class="jira" style="color: #333; font-family: Arial, sans-serif; font-size: 14px;
line-height: 1.429"> 
        <table id="background-table" cellpadding="0" cellspacing="0" width="100%" style="border-collapse:
collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; background-color: #f5f5f5; border-collapse:
collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
            <!-- header here --> 
            <tr> 
                <td id="header-pattern-container" style="padding: 0px; border-collapse:
collapse; padding: 10px 20px"> 
                    <table id="header-pattern" cellspacing="0" cellpadding="0" border="0"
style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                        <tr> 
                            <td id="header-avatar-image-container" valign="top" style="padding:
0px; border-collapse: collapse; vertical-align: top; width: 32px; padding-right: 8px">
<img id="header-avatar-image" class="image_fix" src="cid:jira-generated-image-avatar-jvz-eabbea2c-3b0c-4d52-b710-91e3cdf31725"
height="32" width="32" border="0" style="border-radius: 3px; vertical-align: top" /> 
                            </td> 
                            <td id="header-text-container" valign="middle" style="padding:
0px; border-collapse: collapse; vertical-align: middle; font-family: Arial, sans-serif; font-size:
14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> <a class="user-hover"
rel="jvz" id="email_jvz" href="https://issues.apache.org/jira/secure/ViewProfile.jspa?name=jvz"
style="color:#3b73af;; color: #3b73af; text-decoration: none">Matt Sicker</a> <strong>commented</strong>
on <a href="https://issues.apache.org/jira/browse/LOG4J2-1431" style="color: #3b73af; text-decoration:
none"><img src="cid:jira-generated-image-static-improvement-1ab797a3-9d49-4ed1-93ae-cfb703e64552"
height="16" width="16" border="0" align="absmiddle" alt="Improvement" /> LOG4J2-1431</a>

                            </td> 
                        </tr> 
                    </table> 
                </td> 
            </tr> 
            <tr> 
                <td id="email-content-container" style="padding: 0px; border-collapse:
collapse; padding: 0 20px"> 
                    <table id="email-content-table" cellspacing="0" cellpadding="0" border="0"
width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt;
border-spacing: 0; border-collapse: separate"> 
                        <tr> 
                            <!-- there needs to be content in the cell for it to render
in some clients --> 
                            <td class="email-content-rounded-top mobile-expand" style="padding:
0px; border-collapse: collapse; color: #fff; padding: 0 15px 0 16px; height: 15px; background-color:
#fff; border-left: 1px solid #ccc; border-top: 1px solid #ccc; border-right: 1px solid #ccc;
border-bottom: 0; border-top-right-radius: 5px; border-top-left-radius: 5px; height: 10px;
line-height: 10px; padding: 0 15px 0 16px; mso-line-height-rule: exactly">
                                &nbsp;
                            </td> 
                        </tr> 
                        <tr> 
                            <td class="email-content-main mobile-expand " style="padding:
0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc;
border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff"> 
                                <table class="page-title-pattern" cellspacing="0" cellpadding="0"
border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace:
0pt"> 
                                    <tr> 
                                        <td style="vertical-align: top;; padding: 0px;
border-collapse: collapse; padding-right: 5px; font-size: 20px; line-height: 30px; mso-line-height-rule:
exactly" class="page-title-pattern-header-container"> <span class="page-title-pattern-header"
style="font-family: Arial, sans-serif; padding: 0; font-size: 20px; line-height: 30px; mso-text-raise:
2px; mso-line-height-rule: exactly; vertical-align: middle"> <a href="https://issues.apache.org/jira/browse/LOG4J2-1431"
style="color: #3b73af; text-decoration: none">Re: Simplify log4j system property naming
scheme</a> </span> 
                                        </td> 
                                    </tr> 
                                </table> 
                            </td> 
                        </tr> 
                        <tr> 
                            <td id="text-paragraph-pattern-top" class="email-content-main
mobile-expand  comment-top-pattern" style="padding: 0px; border-collapse: collapse; border-left:
1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0
15px 0 16px; background-color: #fff; border-bottom: none; padding-bottom: 0"> 
                                <table class="text-paragraph-pattern" cellspacing="0" cellpadding="0"
border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace:
0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule:
exactly; mso-text-raise: 2px"> 
                                    <tr> 
                                        <td class="text-paragraph-pattern-container mobile-resize-text
" style="padding: 0px; border-collapse: collapse; padding: 0 0 10px 0"> 
                                            <p style="margin: 10px 0 0 0">Bringing this
topic back up before I plan any code changes, I'd like to elaborate on the idea. Right now,
configuration done via the normal config file system is rather well supported in the documentation.
One of the key improvements in Log4j 2's configuration format was getting rid of the need
to specify internal class names to configure plugins. This feature request follows a similar
philosophy in simplifying the global Log4j 2 settings that are normally specified as system
properties or through a log4j2.component.properties file on the classpath. System property
settings are documented all over the manual where appropriate, but the general system of how
to use them other than as command line flags is not very well explained.</p> 
                                            <p style="margin: 10px 0 0 0">What I'd like
to propose here, besides simplifying the base naming scheme and supporting them all (along
with updating the documentation to normalize on the prefix <tt>log4j2.</tt> as
discussed above), would be supporting a general property name format like such. All the following
property names would be equivalent:</p> 
                                            <ul> 
                                                <li>
                                                    log4j.configurationFile
                                                </li> 
                                                <li>
                                                    log4j2.configurationFile
                                                </li> 
                                                <li>
                                                    Log4jConfigurationFile
                                                </li> 
                                                <li>
                                                    org.apache.logging.log4j.configurationFile
                                                </li> 
                                                <li>
                                                    LOG4J_CONFIGURATIONFILE
                                                </li> 
                                                <li>
                                                    LOG4J_CONFIGURATION_FILE <img class="emoticon"
src="https://issues.apache.org/jira/images/icons/emoticons/help_16.gif" height="16" width="16"
align="absmiddle" alt="" border="0" />
                                                </li> 
                                                <li>
                                                    Log4j-configurationFile
                                                </li> 
                                                <li>
                                                    Log4j-ConfigurationFile <img class="emoticon"
src="https://issues.apache.org/jira/images/icons/emoticons/help_16.gif" height="16" width="16"
align="absmiddle" alt="" border="0" />
                                                </li> 
                                                <li>
                                                    log4j.configuration.file <img class="emoticon"
src="https://issues.apache.org/jira/images/icons/emoticons/help_16.gif" height="16" width="16"
align="absmiddle" alt="" border="0" />
                                                </li> 
                                            </ul> 
                                            <p style="margin: 10px 0 0 0">The idea here
being that dots, dashes, and underscores should all be equivalent (underscores being supported
for allowing environment variables to be used instead of system properties in a <a href="https://12factor.net/"
class="external-link" rel="nofollow" style="color: #3b73af; text-decoration: none">12factor</a>
system, and dashes being added possibly to allow for alternate styles to be used, but I have
no personal request for that other than completeness); properties could either be case-insensitive
or we could support a system where CamelCaseWords are treated the same as camel.case.words
or CAMEL_CASE_WORDS (so, somewhat case insensitive, but after parsing into words); and this
would in general provide the possibility to inject configuration in a cloud environment through
any arbitrary configuration system (although supporting environment variables in addition
to system properties would handle the majority of cases; it's not like global settings from
PropertiesUtil are reconfigurable at runtime, so supporting hot-reload via some configuration
management server doesn't make sense here).</p> 
                                            <p style="margin: 10px 0 0 0">I also have
in my notes that it may be useful to support slashes as well for a JNDI-style configuration
(and potentially supporting property lookup via JNDI), but that would be an open feature request
as I don't personally use JNDI anymore (I generally stick to environment variables for options
that change per environment and system properties for things that change per application).</p>

                                            <p style="margin: 10px 0 0 0">Things that
this is <em>not</em>:</p> 
                                            <ul> 
                                                <li>
                                                    Support for complex data types (i.e.,
we'd only support primitives and strings as we already do).
                                                </li> 
                                                <li>
                                                    Reconfigurable global properties (not
only would this be very difficult to support correctly, I don't even see how this would be
useful for a user).
                                                </li> 
                                                <li>
                                                    A public API for writing a configuration
system (just use a dedicated library like one mentioned below).
                                                </li> 
                                                <li>
                                                    A replacement for the plugin configuration
system (in fact, the less we rely on global settings, the better).
                                                </li> 
                                                <li>
                                                    Support for similar naming schemes in
plugins (e.g., adding dash support in tag names similar to appender-ref).
                                                </li> 
                                            </ul> 
                                            <p style="margin: 10px 0 0 0">In my own
applications, I would normally just use some sort of configuration library like Commons Configuration,
<a href="https://github.com/Netflix/archaius" class="external-link" rel="nofollow" style="color:
#3b73af; text-decoration: none">Archaius</a>, or <a href="https://github.com/typesafehub/config"
class="external-link" rel="nofollow" style="color: #3b73af; text-decoration: none">HOCON</a>,
but as Log4j is a low level library, this isn't an option.</p> 
                                        </td> 
                                    </tr> 
                                </table> 
                            </td> 
                        </tr> 
                        <tr> 
                            <td class="email-content-main mobile-expand " style="padding:
0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc;
border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff"> 
                                <table id="actions-pattern" cellspacing="0" cellpadding="0"
border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace:
0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule:
exactly; mso-text-raise: 1px"> 
                                    <tr> 
                                        <td id="actions-pattern-container" valign="middle"
style="padding: 0px; border-collapse: collapse; padding: 10px 0 10px 24px; vertical-align:
middle; padding-left: 0"> 
                                            <table align="left" style="border-collapse:
collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                                                <tr> 
                                                    <td class="actions-pattern-action-icon-container"
style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size:
14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 0px; vertical-align:
middle"> <a href="https://issues.apache.org/jira/browse/LOG4J2-1431#add-comment" target="_blank"
title="Add Comment" style="color: #3b73af; text-decoration: none"> <img class="actions-pattern-action-icon-image"
src="cid:jira-generated-image-static-comment-icon-b7cf0336-f645-42d3-bf52-bd8f3a11f9fa" alt="Add
Comment" title="Add Comment" height="16" width="16" border="0" style="vertical-align: middle"
/> </a> 
                                                    </td> 
                                                    <td class="actions-pattern-action-text-container"
style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size:
14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 4px; padding-left:
5px"> <a href="https://issues.apache.org/jira/browse/LOG4J2-1431#add-comment" target="_blank"
title="Add Comment" style="color: #3b73af; text-decoration: none">Add Comment</a>

                                                    </td> 
                                                </tr> 
                                            </table> 
                                        </td> 
                                    </tr> 
                                </table> 
                            </td> 
                        </tr> 
                        <!-- there needs to be content in the cell for it to render in
some clients --> 
                        <tr> 
                            <td class="email-content-rounded-bottom mobile-expand" style="padding:
0px; border-collapse: collapse; color: #fff; padding: 0 15px 0 16px; height: 5px; line-height:
5px; background-color: #fff; border-top: 0; border-left: 1px solid #ccc; border-bottom: 1px
solid #ccc; border-right: 1px solid #ccc; border-bottom-right-radius: 5px; border-bottom-left-radius:
5px; mso-line-height-rule: exactly">
                                &nbsp;
                            </td> 
                        </tr> 
                    </table> 
                </td> 
            </tr> 
            <tr> 
                <td id="footer-pattern" style="padding: 0px; border-collapse: collapse;
padding: 12px 20px"> 
                    <table id="footer-pattern-container" cellspacing="0" cellpadding="0"
border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">

                        <tr> 
                            <td id="footer-pattern-text" class="mobile-resize-text" width="100%"
style="padding: 0px; border-collapse: collapse; color: #999; font-size: 12px; line-height:
18px; font-family: Arial, sans-serif; mso-line-height-rule: exactly; mso-text-raise: 2px">
                                 This message was sent by Atlassian JIRA <span id="footer-build-information">(v6.3.15#6346-<span
title="dbc023dd75cecacf443c4b235f66124b15f5c5fe" data-commit-id="dbc023dd75cecacf443c4b235f66124b15f5c5fe}">sha1:dbc023d</span>)</span>

                            </td> 
                            <td id="footer-pattern-logo-desktop-container" valign="top"
style="padding: 0px; border-collapse: collapse; padding-left: 20px; vertical-align: top">

                                <table style="border-collapse: collapse; mso-table-lspace:
0pt; mso-table-rspace: 0pt"> 
                                    <tr> 
                                        <td id="footer-pattern-logo-desktop-padding" style="padding:
0px; border-collapse: collapse; padding-top: 3px"> <img id="footer-pattern-logo-desktop"
src="cid:jira-generated-image-static-footer-desktop-logo-c7ff92d8-b50f-48cf-888e-c7ed52480750"
alt="Atlassian logo" title="Atlassian logo" width="169" height="36" class="image_fix" />

                                        </td> 
                                    </tr> 
                                </table> 
                            </td> 
                        </tr> 
                    </table> 
                </td> 
            </tr> 
        </table>   
    </body>
</html>
Mime
View raw message