logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ralph Goers <ralph.go...@dslextreme.com>
Subject Re: SpringEnvironmentHolder never gets its Environment initiated
Date Tue, 31 Dec 2019 16:11:12 GMT
I should also reiterate that in a Spring Boot app logging is initialized at least 3 times.
The first and possibly the second do not have a Spring Environment.

Ralph

> On Dec 31, 2019, at 8:39 AM, Ralph Goers <ralph.goers@dslextreme.com> wrote:
> 
> I assume this is a Spring Boot app?   The spring-cloud-config-client includes a file
named log4j2.system.properties. The values in that file are set as system properties by Log4j
2, so Log4j2CloudConfigLoggingSystem will be used as the LoggingSystem by Spring. Its initialize
method sets the Spring Environment into the context, so if that isn’t happening then one
of those things isn’t happening properly.
> 
> 
> Ralph
> 
>> On Dec 31, 2019, at 12:39 AM, buksvdl@gmail.com wrote:
>> 
>> Hi, 
>> 
>> 
>> 
>> I've been trying to get the Spring environment available in log4j2 for a
>> couple of weeks now.
>> 
>> Mostly using custom lookups and using the reload mechanism. I haven't fully
>> got it to work when log4j2 ver 2.13.0 got released so I switched over to try
>> make that work for me.
>> 
>> What happens is that the SpringEnvironmentHolder never gets initiated with
>> the Spring Environment.
>> 
>> The condition: [
>> 
>> if (environment == null && LogManager.getFactory() != null &&
>> LogManager.getFactory().hasContext(SpringEnvironmentHolder.class.getName(),
>> null, false)) {
>> 
>> ]
>> 
>> Is never true, even though the Spring property sources are mostly available:
>> [
>> 
>> Object obj =
>> LogManager.getContext(false).getObject(Log4j2CloudConfigLoggingSystem.ENVIRO
>> NMENT_KEY);
>> 
>> ]
>> 
>> 
>> 
>> Any ideas what I am doing wrong here?
>> 
>> My log4j2.properties file looks like this:
>> 
>> status=warn
>> name=Log4j2PropertiesConfig
>> packages=za.co.spsi.ice.config
>> 
>> property.log_dateformat_pattern=-yyyy-MM-dd HH:mm:ss.SSS
>> property.log_level_pattern=-%5p
>> property.pattern=%d{${log_dateformat_pattern:-yyyy-MM-dd HH:mm:ss.SSS}}
>> %highlight{${log_level_pattern:-%5p}}{FATAL=red blink, ERROR=red,
>> WARN=yellow bold, INFO=green, DEBUG=green bold, TRACE=blue}
>> %style{${sys:PID}}{magenta} [%15.15t] %style{%-40.40C{1.}}{cyan} :
>> %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
>> property.filename=./poe-buks.log
>> 
>> appender.null.type=Null
>> appender.null.name=LogNull
>> 
>> appender.console.type=Console
>> appender.console.name=LogToConsole
>> appender.console.layout.type=PatternLayout
>> appender.console.layout.pattern=${pattern}
>> 
>> appender.kafka.type=kafka
>> appender.kafka.name=LogToKafka
>> appender.kafka.topic=${spring:kafka.log.topic}
>> appender.kafka.properties1.type=Property
>> appender.kafka.properties1.name=bootstrap.servers
>> appender.kafka.properties1.value=${spring:spring.kafka.bootstrap-servers}
>> appender.kafka.syncSend=${spring:kafka.log.async}
>> appender.kafka.layout.type=PatternLayout
>> appender.kafka.layout.pattern=%d{${log_dateformat_pattern:-yyyy-MM-dd
>> HH:mm:ss.SSS}} %highlight{${log_level_pattern:-%5p}}{FATAL=red blink,
>> ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, TRACE=blue}
>> %style{${sys:PID}}{magenta} [%15.15t] %style{%-40.40C{1.}}{cyan} :
>> %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
>> 
>> # Rotate log file
>> appender.rolling.type=RollingFile
>> appender.rolling.name=LogToRollingFile
>> appender.rolling.fileName=${filename}
>> appender.rolling.filePattern=${filename}.%d{yyyy-MM-dd}.%i.gz
>> appender.rolling.layout.type=PatternLayout
>> appender.rolling.layout.pattern=${pattern}
>> appender.rolling.policies.type=Policies
>> appender.rolling.policies.time.type=TimeBasedTriggeringPolicy
>> appender.rolling.policies.size.type=SizeBasedTriggeringPolicy
>> appender.rolling.policies.size.size=10MB
>> appender.rolling.strategy.type=DefaultRolloverStrategy
>> appender.rolling.strategy.max=10
>> 
>> appender.routing.type=Routing
>> appender.routing.name=LogToRoutingAppender
>> appender.routing.routes.type=Routes
>> appender.routing.routes.pattern=${sys:kafka.log.enabled}
>> appender.routing.routes.route1.type=Route
>> appender.routing.routes.route1.key=false
>> appender.routing.routes.route1.ref=LogNull
>> appender.routing.routes.route2.type=Route
>> appender.routing.routes.route2.key=true
>> appender.routing.routes.route2.ref=LogToKafka
>> 
>> logger.kafka.name=org.apache.kafka
>> logger.kafka.level=error
>> logger.kafka.additivity=false
>> logger.kafka.appenderRef.rolling.ref=LogToRollingFile
>> logger.kafka.appenderRef.routing.ref=LogToRoutingAppender
>> 
>> logger.spring-kafka.name=org.springframework.kafka
>> logger.spring-kafka.level=error
>> logger.spring-kafka.additivity=false
>> logger.spring-kafka.appenderRef.rolling.ref=LogToRollingFile
>> logger.spring-kafka.appenderRef.routing.ref=LogToRoutingAppender
>> 
>> logger.hibernate.name=org.hibernate
>> logger.hibernate.level=warn
>> logger.hibernate.additivity=false
>> logger.hibernate.appenderRef.rolling.ref=LogToRollingFile
>> logger.hibernate.appenderRef.routing.ref=LogToRoutingAppender
>> 
>> logger.apache.name=org.apache
>> logger.apache.level=warn
>> logger.apache.additivity=false
>> logger.apache.appenderRef.rolling.ref=LogToRollingFile
>> logger.apache.appenderRef.routing.ref=LogToRoutingAppender
>> 
>> #Root logger will log to
>> rootLogger.level=info
>> rootLogger.appenderRef.stdout.ref=LogToRollingFile
>> rootLogger.appenderRef.routing.ref=LogToRoutingAppender
>> 
>> 
>> 
>> 
>> 
>> Kind regards,
>> 
>> Buks
>> 
>> 
>> 
>> 
>> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org


Mime
View raw message