我按照这里的教程 春季尤里卡教程 创建一个基本的尤里卡注册表 jar 应用程序。下一步是将日志记录更改为 log4j2,以便我可以使用此处的 Spring log4j2 指南拥有一个滚动文件。
我遇到的问题是当我运行应用程序时,我没有抛出任何错误,但是
- 尤里卡服务器日志仍输出到控制台
- 自定义日志输出文件"eureka.log"已创建,但它为空。
- 我编写的任何自定义日志(例如
logger.info("Starting Eureka Registry server...");
都不会显示在任何地方,也不会显示在日志文件或控制台日志中。它们只是被吞噬在记忆中的某个地方。
所以不知何故,Spring 正在获取我的 log4j2 属性文件,但它仍然使用 eureka 服务器的默认内置日志记录并忽略其他日志。
主.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);
}
}
绒球.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
最后,我得到一个空的 eureka.log 文件和一个控制台日志输出看起来像这样
. ____ _ __ _ _
/\ / ___'_ __ _ _(_)_ __ __ _
( ( )___ | '_ | '_| | '_ / _` |
\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |___, | / / / /
=========|_|==============|___/=/_/_/_/
:: 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
我怀疑我可能错过了一些东西,我一直在寻找其他解决方案,但两天后没有运气,我认为最好寻求帮助。欢迎任何建议或提示。
在application.properties
中,您可以指定:
- logging.path
- logging.file
- logging.level