I followed the tutorial here Spring Eureka Tutorial to create a basic Eureka registry jar application. The next step was to change the logging to log4j2 so I can have a rolling file using the guide found here Spring log4j2 guide .
The problem I have is when I run the application, I have no errors thrown but
logger.info("Starting Eureka Registry server...");
does not show up anywhere, not in the log file nor the console logs. They are just swallowed somewhere in memory. So somehow, spring is picking up my log4j2 properties file, but its still using the default inbuilt logging for the eureka server and ignoring others.
Main.java
@EnableEurekaServer
@SpringBootApplication
public class Main {
public static void main(String[] args) {
Logger logger = LogManager.getLogger(Main.class.getSimpleName());
logger.info("Starting Eureka Registry server..."); //Log message disappears
logger.info("Starting Eureka Registry server..."); //Log message disappears
logger.info("Starting Eureka Registry server..."); //Log message disappears
logger.info("Starting Eureka Registry server..."); //Log message disappears
SpringApplication.run(Main.class, args);
}
}
pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
log4j2.properties
status = error
name = PropertiesConfig
property.filename = logs
filters = threshold
filter.threshold.type = ThresholdFilter
filter.threshold.level = info
appenders = rolling
appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
appender.rolling.fileName = ${filename}/eureka.log
appender.rolling.filePattern = eureka-%d{MM-dd-yy-HH-mm-ss}-%i.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} [%t] - %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=10MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 20
loggers = rolling
#Make sure to change the package structure as per your application
logger.rolling.name = com.lab.servers
logger.rolling.level = debug
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = RollingFile
In the end, I get an empty eureka.log file and a console log output looks this
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.2.RELEASE)
2017-06-18 16:25:48.349 INFO 2601 --- [ main] c.g.c.s.Main : No active profile set, falling back to default profiles: default
2017-06-18 16:25:48.362 INFO 2601 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@2783717b: startup date [Sun Jun 18 16:25:48 EDT 2017]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@5a56cdac
2017-06-18 16:25:48.812 WARN 2601 --- [ main] o.s.c.a.ConfigurationClassPostProcessor : Cannot enhance @Configuration bean definition 'refreshScope' since its singleton instance has been created too early. The typical cause is a non-static @Bean method with a BeanDefinitionRegistryPostProcessor return type: Consider declaring such methods as 'static'.
2017-06-18 16:25:48.953 INFO 2601 --- [ main] o.s.c.c.s.GenericScope : BeanFactory id=7bcf4003-cc89-31c0-9a0e-e63326839222
2017-06-18 16:25:48.966 INFO 2601 --- [ main] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2017-06-18 16:25:49.039 INFO 2601 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$25365eb7] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2017-06-18 16:25:49.197 INFO 2601 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8761 (http)
.
.
.
2017-06-18 16:25:51.733 INFO 2601 --- [ Thread-11] o.s.c.n.e.s.EurekaServerBootstrap : isAws returned false
2017-06-18 16:25:51.734 INFO 2601 --- [ Thread-11] o.s.c.n.e.s.EurekaServerBootstrap : Initialized server context
2017-06-18 16:25:51.734 INFO 2601 --- [ Thread-11] c.n.e.r.PeerAwareInstanceRegistryImpl : Got 1 instances from neighboring DS node
2017-06-18 16:25:51.734 INFO 2601 --- [ Thread-11] c.n.e.r.PeerAwareInstanceRegistryImpl : Renew threshold is: 1
2017-06-18 16:25:51.734 INFO 2601 --- [ Thread-11] c.n.e.r.PeerAwareInstanceRegistryImpl : Changing status to UP
2017-06-18 16:25:51.739 INFO 2601 --- [ Thread-11] e.s.EurekaServerInitializerConfiguration : Started Eureka Server
2017-06-18 16:25:51.792 INFO 2601 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8761 (http)
2017-06-18 16:25:51.793 INFO 2601 --- [ main] c.n.e.EurekaDiscoveryClientConfiguration : Updating port to 8761
2017-06-18 16:25:51.795 INFO 2601 --- [ main] c.g.c.s.Main : Started Main in 4.286 seconds (JVM running for 4.924)
2017-06-18 16:25:56.788 INFO 2601 --- [ Thread-13] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@2783717b: startup date [Sun Jun 18 16:25:48 EDT 2017]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@5a56cdac
2017-06-18 16:25:56.790 INFO 2601 --- [ Thread-13] c.n.e.EurekaDiscoveryClientConfiguration : Unregistering application CiveMicroserviceRegistry with eureka with status DOWN
2017-06-18 16:25:56.791 INFO 2601 --- [ Thread-13] c.n.d.DiscoveryClient : Shutting down DiscoveryClient ...
2017-06-18 16:25:56.791 INFO 2601 --- [ Thread-13] c.n.d.DiscoveryClient : Completed shut down of DiscoveryClient
I suspect I may be missing something and I've been looking at other solutions but after 2 days with no luck I figure its best to ask for help. Any suggestions or tips are welcome.
In application.properties
, you can specify your:
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.