2016-02-22 34 views
2

在我application.yml我:春天配置文件,不同的Log4j2 CONFIGS

logging: 
    config: classpath:log4j2.debug.yml 

和其他一些人在不同的配置文件。當我啓動應用程序,我得到以下內容:

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. 

如果我只是把log4j2.xml旁邊的配置文件的工作。所以我認爲這是一個我錯過了依賴性的東西,或者它不可能與log4j2?

參考:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html#boot-features-custom-log-configuration說應該可以像我一樣嘗試?

回答

7

在我身邊,我使用屬性文件而不是yaml。我想要兩個日誌文件:一個將所有內容記錄到控制檯,另一個記錄文件。所以我製作了兩個log4j2配置文件:log4j2-dev.xml和log4j2-file.xml。

我使用兩個Spring配置文件:默認的一個和一個名爲「dev」。切換log4j2配置文件,我創建包含文件application.properties:

spring.profiles.active= 
logging.config=classpath:log4j2-file.xml 

我有另一個屬性文件,application-dev.properties,當自動春檢測到「dev的」輪廓,其被激活。它包含:

logging.config=classpath:log4j2-dev.xml 

當我想用log4j2-dev.xml配置,我只需要添加「開發」作爲價值「spring.profiles.active =」在application.properties。

你可以看看周飛宇在本頁的回答。他使用Yaml配置文件提出了一個解決方案:How to define log4j2 path by application.properties?

當然,您可以始終刪除application.properties屬性logging.config,並在log4j2.xml中重命名log4j2-file.xml。它將由Log4j2默認下載,而無需通過彈簧輪廓

1

見觸發也Log4j 2 Configuration manual page

Log4j2將首先嚐試找到一個在classpath稱爲log4j2-test.yaml,那麼JSON相同的文件和XML,最後將在類路徑中查找名爲log4j2.yml的文件。

您也可以明確指定配置文件的位置。