2017-04-03 119 views
1

我iniatilizing的elasticsearch客戶端new PreBuiltTransportClient(Settings.EMPTY);和我有以下配置:Elasticsearch配置與log4j2.xml

pom.xml

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-core</artifactId> 
    <version>2.8.1</version> 
</dependency> 
<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-log4j12</artifactId> 
    <version>1.7.25</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-api</artifactId> 
    <version>2.8.1</version> 
</dependency> 

因爲log4j2採用XML文件==>log4j2.xml

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="WARN"> 

    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 
     </Console> 

     <RollingFile name="RollingFile" filename="log/rolling.log" 
      filepattern="${logPath}/%d{YYYYMMddHHmmss}-rolling.log"> 
      <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 
      <Policies> 
       <SizeBasedTriggeringPolicy size="100 MB" /> 
      </Policies> 
      <DefaultRolloverStrategy max="20" /> 
     </RollingFile> 

    </Appenders> 
    <Loggers> 
     <Root level="info"> 
      <AppenderRef ref="Console" /> 
      <AppenderRef ref="RollingFile" /> 
     </Root> 
     <logger name="org.springframework.web"> 
      <level value="info" /> 
      <appender-ref ref="Console" /> 
     </logger> 
    </Loggers> 
</Configuration> 

但初始化拋出令人討厭的配置異常,即

Error while converting string [] to type [class.org.apache.logging.log4j.Level]. Using default value [null]. java.lang.IllegalArgumentException: Unknown level constant []. 

我會期待一些配置缺少記錄。搜索適當的配置我發現只有暗示log4j.properties文件 - 我不想使用。我想我需要配置一個合適的記錄器名稱 - 但不知道哪個。 org.elasticsearch.common.logging沒有幫助。

如何正確配置?

回答

0

我認爲錯誤在於你的xml文件。在記錄器標籤內,您已經錯誤地定義了記錄器。你可以嘗試以下嗎?

<Loggers> 
    <Root level="INFO"> 
     <AppenderRef ref="Console"/> 
     <AppenderRef ref="RollingFile" /> 
    </Root> 
    <Logger name="corg.springframework.web" level="INFO"> 
     <AppenderRef ref="Console"/> 
    </Logger> 
</Loggers> 

水平必須記錄儀線內,而不是一個單獨的水平線

來源log4j

+0

THX,但我沒有嘗試到最後結尾: - /更多或更少,因爲我找到了一些其他工作配置。何時使用'log4j:configuration'或'Configuration'或'appender-ref'與'AppenderRef'還是很不清楚。整個配置仍然是黑盒子,現在幸運的是:-) – LeO

+0

說實話,我還需要查找確切的配置,當開始一個新的項目或更新日誌依賴項..應該是我的意見更容易!很好,它的作品! –