2017-06-18 273 views
0

我按照這裏的教程Spring Eureka Tutorial創建了一個基本的Eureka註冊表jar應用程序。下一步是將日誌記錄更改爲log4j2,這樣我可以使用在此處找到的指南Spring log4j2 guide來製作滾動文件。springboot + eureka + log4j2空日誌文件

我的問題是,當我運行應用程序,我沒有拋出錯誤,但

  1. 尤里卡服務器日誌仍然輸出到控制檯
  2. 自定義日誌輸出文件「eureka.log」被創建,但它是空的。
  3. 我寫的任何自定義日誌,例如logger.info("Starting Eureka Registry server...");都不會顯示在任何地方,不在日誌文件或控制檯日誌中。他們只是在記憶中的某個地方被吞噬。

因此,不知何故,春天正在拿起我的log4j2屬性文件,但它仍然使用默認的內置日誌記錄爲尤里卡服務器和忽略其他。

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 

最後,我得到一個空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[email protected]: startup date [Sun Jun 18 16:25:48 EDT 2017]; parent: org.spring[email protected]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[email protected]2783717b: startup date [Sun Jun 18 16:25:48 EDT 2017]; parent: org.spring[email protected]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 

我懷疑我可能失去了一些東西,我一直在尋找其他的解決方案,但後2天,沒有運氣我想最好問求助。任何建議或提示,歡迎。

回答

0

application.properties,您可以指定:

  • logging.path
  • logging.file
  • logging.level
+0

是的,但是這仍然會使用默認的logback爲日誌。我想像教程中那樣將它切換到Log4j2。但它不工作。 – Rhycce