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

Ralph Goers edited comment on LOG4J2-1308 at 3/6/16 9:20 PM:
-------------------------------------------------------------

I did this on purpose. To do what you are suggesting you would have to change 

{code}
status = error
name = PropertiesConfigTest

property.filename = target/rolling/rollingtest.log

filters = threshold

filter.threshold.type = ThresholdFilter
filter.threshold.level = debug

appenders = console, rolling, list

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %m%n

appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
appender.rolling.fileName = ${filename}
appender.rolling.filePattern = 
target/rolling2/test1-%d{MM-dd-yy-HH-mm-ss}-%i.log.gz
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d %p %C{1.} [%t] %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 2
appender.rolling.policies.time.modulate = true
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=100MB

appender.list.type = List
appender.list.name = List
appender.list.filters = threshold
appender.list.filter.threshold.type = ThresholdFilter
appender.list.filter.threshold.level = error

loggers = rolling

logger.rolling.name = org.apache.logging.log4j.core.appender.rolling
logger.rolling.level = debug
logger.rolling.additivity = false
logger.rolling.appenderRefs = rolling
logger.rolling.appenderRef.rolling.ref = RollingFile

rootLogger.level = info
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
{code}

to

{code}
status = error
name = PropertiesConfigTest

property.filename = target/rolling/rollingtest.log

filter.type = ThresholdFilter
filter.level = debug

#Note that if multiple filters are specified then you must do the following: 
#filters.threshold.type = ThresholdFilter
#filters.threshold.level = debug
#filters.marker.type = Marker
#filters.marker.marker = FLOW
#filters.marker.onMatch = ACCEPT

appenders.console.type = Console
appenders.console.name = STDOUT
appenders.console.layout.type = PatternLayout
appenders.console.layout.pattern = %m%n

appenders.rolling.type = RollingFile
appenders.rolling.name = RollingFile
appenders.rolling.fileName = ${filename}
appenders.rolling.filePattern = 
target/rolling2/test1-%d{MM-dd-yy-HH-mm-ss}-%i.log.gz
appenders.rolling.layout.type = PatternLayout
appenders.rolling.layout.pattern = %d %p %C{1.} [%t] %m%n
appenders.rolling.policies.type = Policies
appenders.rolling.policies.time.type = TimeBasedTriggeringPolicy
appenders.rolling.policies.time.interval = 2
appenders.rolling.policies.time.modulate = true
appenders.rolling.policies.size.type = SizeBasedTriggeringPolicy
appenders.rolling.policies.size.size=100MB

appenders.list.type = List
appenders.list.name = List
appenders.list.filters = threshold
appenders.list.filter.threshold.type = ThresholdFilter
appenders.list.filter.threshold.level = error

loggers.rolling.name = org.apache.logging.log4j.core.appender.rolling
loggers.rolling.level = debug
loggers.rolling.additivity = false
loggers.rolling.appenderRefs = rolling
loggers.rolling.appenderRef.rolling.ref = RollingFile

rootLogger.level = info
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
{code}

Note that because to have multiple filters you actually wrap them in a 
composite filter you have to change the syntax with the way you are proposing. 
In addition, existing properties configurations would have to be completely 
modified.

Before committing anything I'd suggest you post a sample configuration to this 
issue. 


was (Author: [email protected]):
I did this on purpose. To do what you are suggesting you would have to change 

{code}
status = error
name = PropertiesConfigTest

property.filename = target/rolling/rollingtest.log

filters = threshold

filter.threshold.type = ThresholdFilter
filter.threshold.level = debug

appenders = console, rolling, list

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %m%n

appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
appender.rolling.fileName = ${filename}
appender.rolling.filePattern = 
target/rolling2/test1-%d{MM-dd-yy-HH-mm-ss}-%i.log.gz
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d %p %C{1.} [%t] %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 2
appender.rolling.policies.time.modulate = true
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=100MB

appender.list.type = List
appender.list.name = List
appender.list.filters = threshold
appender.list.filter.threshold.type = ThresholdFilter
appender.list.filter.threshold.level = error

loggers = rolling

logger.rolling.name = org.apache.logging.log4j.core.appender.rolling
logger.rolling.level = debug
logger.rolling.additivity = false
logger.rolling.appenderRefs = rolling
logger.rolling.appenderRef.rolling.ref = RollingFile

rootLogger.level = info
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
{code}

to

{code}
status = error
name = PropertiesConfigTest

property.filename = target/rolling/rollingtest.log

filter.type = ThresholdFilter
filter.level = debug

#Note that if multiple filters are specified then you must do the following: 
#filters.threshold.type = ThresholdFilter
#filters.threshold.level = debug
#filters.marker.type = Marker
#filters.marker.marker = FLOW
#filters.marker.onMatch = ACCEPT

appenders.console.type = Console
appenders.console.name = STDOUT
appenders.console.layout.type = PatternLayout
appenders.console.layout.pattern = %m%n

appenders.rolling.type = RollingFile
appenders.rolling.name = RollingFile
appenders.rolling.fileName = ${filename}
appenders.rolling.filePattern = 
target/rolling2/test1-%d{MM-dd-yy-HH-mm-ss}-%i.log.gz
appenders.rolling.layout.type = PatternLayout
appenders.rolling.layout.pattern = %d %p %C{1.} [%t] %m%n
appenders.rolling.policies.type = Policies
appenders.rolling.policies.time.type = TimeBasedTriggeringPolicy
appenders.rolling.policies.time.interval = 2
appenders.rolling.policies.time.modulate = true
appenders.rolling.policies.size.type = SizeBasedTriggeringPolicy
appenders.rolling.policies.size.size=100MB

appenders.list.type = List
appenders.list.name = List
appenders.list.filters = threshold
appenders.list.filter.threshold.type = ThresholdFilter
appenders.list.filter.threshold.level = error

loggers.rolling.name = org.apache.logging.log4j.core.appender.rolling
loggers.rolling.level = debug
loggers.rolling.additivity = false
loggers.rolling.appenderRefs = rolling
loggers.rolling.appenderRef.rolling.ref = RollingFile

rootLogger.level = info
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
{code}

Note that because to have multiple filters you actually wrap them in a 
composite filter you have to change the syntax with the way you are proposing. 
In addition, existing properties configurations would have to be completely 
modified.

> Remove need to pre-specify appender names et al. in property file config 
> format
> -------------------------------------------------------------------------------
>
>                 Key: LOG4J2-1308
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1308
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: Configurators
>    Affects Versions: 2.4, 2.5
>            Reporter: Matt Sicker
>            Assignee: Matt Sicker
>
> In the .properties config file format, several plugin types currently require 
> you to declare names ahead of time. For instance:
> {code}
> appenders = foo, bar, baz
> appender.foo.type = Console
> appender.bar.type = File
> appender.baz.type = List
> # ...
> {code}
> would be transformed into
> {code}
> appender.foo.type = Console
> appender.bar.type = File
> appender.baz.type = List
> # ...
> {code}
> These names should be inferable by their first usage. Then the appenders, 
> filters, loggers, etc., properties can all be safely ignored for backwards 
> compatibility with 2.4/2.5.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to