[jira] [Commented] (LOG4J2-1842) Expand SystemPropertiesLookup syntax

2017-03-16 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/LOG4J2-1842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15928080#comment-15928080
 ] 

ASF GitHub Bot commented on LOG4J2-1842:


Github user mihhail-lapushkin closed the pull request at:

https://github.com/apache/logging-log4j2/pull/64


> Expand SystemPropertiesLookup syntax
> 
>
> Key: LOG4J2-1842
> URL: https://issues.apache.org/jira/browse/LOG4J2-1842
> Project: Log4j 2
>  Issue Type: Improvement
>  Components: Lookups
>Reporter: Mihhail Lapushkin
>Priority: Minor
>
> I've been using a modified version of {{SystemPropertiesLookup}} in my 
> project. Maybe it could be part of the library.
> The idea is to allow a series of property keys to be specified. If one of the 
> properties is present, then it is used. If none are present, then the default 
> value is used. For example:
> {code}
>  level="${sys:myapp.log.level|myapp.log.level.dao|warn}"/>
>  level="${sys:myapp.log.level|myapp.log.level.service|warn}"/>
>  level="${sys:myapp.log.level|myapp.log.level.controller|warn}"/>
> {code}
> This allows me to quickly rerun the app with different log levels without 
> fiddling with the configuration file or JConsole. Defaults represent 
> production settings, so that nothing extra needs to be specified to run the 
> app.
> This work nice in other places as well:
> {code}
> 
> {code}
> Disables colors by default (for production build), but leaves an easy way to 
> turn them on for development.
> When no pipes are present in the expression, then the standard property 
> lookup is used, so the change is backwards-compatible.
> Can be a separate lookup if needed.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

-
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org



[jira] [Commented] (LOG4J2-1842) Expand SystemPropertiesLookup syntax

2017-03-12 Thread Mihhail Lapushkin (JIRA)

[ 
https://issues.apache.org/jira/browse/LOG4J2-1842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15906591#comment-15906591
 ] 

Mihhail Lapushkin commented on LOG4J2-1842:
---

Hm, that's a nice discovery. The syntax is actually: 
`${sys:some.property:-defaultValue}` (note the dash). Maybe it would be enough 
for me ATM.
However, I am opened to refactor this to be part of `StrSubstitutor`.

> Expand SystemPropertiesLookup syntax
> 
>
> Key: LOG4J2-1842
> URL: https://issues.apache.org/jira/browse/LOG4J2-1842
> Project: Log4j 2
>  Issue Type: Improvement
>  Components: Lookups
>Reporter: Mihhail Lapushkin
>Priority: Minor
>
> I've been using a modified version of {{SystemPropertiesLookup}} in my 
> project. Maybe it could be part of the library.
> The idea is to allow a series of property keys to be specified. If one of the 
> properties is present, then it is used. If none are present, then the default 
> value is used. For example:
> {code}
>  level="${sys:myapp.log.level|myapp.log.level.dao|warn}"/>
>  level="${sys:myapp.log.level|myapp.log.level.service|warn}"/>
>  level="${sys:myapp.log.level|myapp.log.level.controller|warn}"/>
> {code}
> This allows me to quickly rerun the app with different log levels without 
> fiddling with the configuration file or JConsole. Defaults represent 
> production settings, so that nothing extra needs to be specified to run the 
> app.
> This work nice in other places as well:
> {code}
> 
> {code}
> Disables colors by default (for production build), but leaves an easy way to 
> turn them on for development.
> When no pipes are present in the expression, then the standard property 
> lookup is used, so the change is backwards-compatible.
> Can be a separate lookup if needed.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

-
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org



[jira] [Commented] (LOG4J2-1842) Expand SystemPropertiesLookup syntax

2017-03-12 Thread Matt Sicker (JIRA)

[ 
https://issues.apache.org/jira/browse/LOG4J2-1842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15906579#comment-15906579
 ] 

Matt Sicker commented on LOG4J2-1842:
-

I definitely like the idea of this feature, though it seems more appropriate to 
be implemented via {{StrSubstitutor}} so that it's available for all 
{{StrLookup}} classes. There's already a default value syntax similar to bash 
for one of your examples:

{code}
${sys:some.property:defaultValue}
{code}

Though I can't even find where that's documented in the manual.

> Expand SystemPropertiesLookup syntax
> 
>
> Key: LOG4J2-1842
> URL: https://issues.apache.org/jira/browse/LOG4J2-1842
> Project: Log4j 2
>  Issue Type: Improvement
>  Components: Lookups
>Reporter: Mihhail Lapushkin
>Priority: Minor
>
> I've been using a modified version of {{SystemPropertiesLookup}} in my 
> project. Maybe it could be part of the library.
> The idea is to allow a series of property keys to be specified. If one of the 
> properties is present, then it is used. If none are present, then the default 
> value is used. For example:
> {code}
>  level="${sys:myapp.log.level|myapp.log.level.dao|warn}"/>
>  level="${sys:myapp.log.level|myapp.log.level.service|warn}"/>
>  level="${sys:myapp.log.level|myapp.log.level.controller|warn}"/>
> {code}
> This allows me to quickly rerun the app with different log levels without 
> fiddling with the configuration file or JConsole. Defaults represent 
> production settings, so that nothing extra needs to be specified to run the 
> app.
> This work nice in other places as well:
> {code}
> 
> {code}
> Disables colors by default (for production build), but leaves an easy way to 
> turn them on for development.
> When no pipes are present in the expression, then the standard property 
> lookup is used, so the change is backwards-compatible.
> Can be a separate lookup if needed.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

-
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org



[jira] [Commented] (LOG4J2-1842) Expand SystemPropertiesLookup syntax

2017-03-09 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/LOG4J2-1842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15903549#comment-15903549
 ] 

ASF GitHub Bot commented on LOG4J2-1842:


GitHub user mihhail-lapushkin opened a pull request:

https://github.com/apache/logging-log4j2/pull/64

[LOG4J2-1842] Expand SystemPropertiesLookup syntax

The table in **Property Substitution** needs to be updated:
https://logging.apache.org/log4j/2.x/manual/configuration.html

Next to **sys** change the contents of **Context** column to:
> System properties. Can be either a simple property key for http://docs.oracle.com/javase/6/docs/api/java/lang/System.html#getProperty(java.lang.String)">System.getProperty(key)
 or a series of pipe-separated property keys followed by a default value 
key1|key2|...|keyn|defaultValue. 
Either the first existing property or the default value is used.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/mihhail-lapushkin/logging-log4j2 master

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/logging-log4j2/pull/64.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #64


commit 6998bb8882c749d9ace1a86429836431910e9e21
Author: Mihhail Lapushkin 
Date:   2017-03-09T18:08:13Z

[LOG4J2-1842] Expand SystemPropertiesLookup syntax:
- Implemented the proposal
- Refactored test and added new test cases




> Expand SystemPropertiesLookup syntax
> 
>
> Key: LOG4J2-1842
> URL: https://issues.apache.org/jira/browse/LOG4J2-1842
> Project: Log4j 2
>  Issue Type: Improvement
>  Components: Lookups
>Reporter: Mihhail Lapushkin
>Priority: Minor
>
> I've been using a modified version of {{SystemPropertiesLookup}} in my 
> project. Maybe it could be part of the library.
> The idea is to allow a series of property keys to be specified. If one of the 
> properties is present, then it is used. If none are present, then the default 
> value is used. For example:
> {code}
>  level="${sys:myapp.log.level|myapp.log.level.dao|warn}"/>
>  level="${sys:myapp.log.level|myapp.log.level.service|warn}"/>
>  level="${sys:myapp.log.level|myapp.log.level.controller|warn}"/>
> {code}
> This allows me to quickly rerun the app with different log levels without 
> fiddling with the configuration file or JConsole. Defaults represent 
> production settings, so that nothing extra needs to be specified to run the 
> app.
> This work nice in other places as well:
> {code}
> 
> {code}
> Disables colors by default (for production build), but leaves an easy way to 
> turn them on for development.
> When no pipes are present in the expression, then the standard property 
> lookup is used, so the change is backwards-compatible.
> Can be a separate lookup if needed.
> Here is the possible implementation:
> {code}
> @Plugin(name = "sys", category = StrLookup.CATEGORY)
> public class SystemPropertiesLookup extends AbstractLookup {
> private static final Logger LOGGER = StatusLogger.getLogger();
> private static final Marker LOOKUP = MarkerManager.getMarker("LOOKUP");
> /**
>  * @param event The current LogEvent.
>  * @param expression the expression to be looked up.
>  * @return The value resolved by expression.
>  */
> @Override
> public String lookup(final LogEvent event, final String expression) {
> try {
> if (expression.indexOf('|') < 0) {
> return System.getProperty(expression);
> }
> String[] expressionElements = expression.split("\\|");
> for (int i = 0; i < expressionElements.length - 1; i++) {
> String propertyValue = 
> System.getProperty(expressionElements[i]);
> if (propertyValue != null) {
> return propertyValue;
> }
> }
> return expressionElements[expressionElements.length - 1];
> } catch (final Exception ex) {
> LOGGER.warn(LOOKUP, "Error while resolving system property by 
> expression [{}].", expression, ex);
> return null;
> }
> }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

-
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org