弹簧启动 + 尤里卡 + log4j2 空日志文件



我按照这里的教程 春季尤里卡教程 创建一个基本的尤里卡注册表 jar 应用程序。下一步是将日志记录更改为 log4j2,以便我可以使用此处的 Spring log4j2 指南拥有一个滚动文件。

我遇到的问题是当我运行应用程序时,我没有抛出任何错误,但是

  1. 尤里卡服务器日志仍输出到控制台
  2. 自定义日志输出文件"eureka.log"已创建,但它为空。
  3. 我编写的任何自定义日志(例如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

最新更新