2017-04-03 4 views
1

Ich iniatilizing den Elasticsearch Client mit new PreBuiltTransportClient(Settings.EMPTY); und ich habe folgendes config:Elasticsearch Config mit 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> 

seit log4j2 nimmt die XML-Datei ==>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> 

aber die Initialisierung löst eklige Config-Ausnahmen, nämlich

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

Ich hätte erwartet, dass einige Konfig für die Protokollierung fehlt. Auf der Suche nach der richtigen Konfiguration fand ich nur Hinweise für die log4j.properties Dateien - die ich nicht verwenden möchte. Ich denke, ich muss einen passenden Loggernamen konfigurieren - aber ich weiß nicht welcher. org.elasticsearch.common.logging hat nicht geholfen.

Wie wird es richtig konfiguriert?

Antwort

0

Ich denke, der Fehler liegt in Ihrer XML-Datei. In Ihrem Logger-Tag haben Sie einen Logger falsch definiert. Könnten Sie Folgendes versuchen?

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

Der Wert muss innerhalb der Logger Linie sein, statt einer separaten Ebene Linie

Quelle: log4j

+0

Thx, aber ich habe nicht versucht, bis zum letzten Ende: -/Mehr oder weniger, seit ich eine andere funktionierende Konfiguration gefunden habe. Sehr unklar bleibt, wann 'log4j: configuration' oder' Configuration' oder 'appender-ref' vs.' AppenderRef' zu verwenden sind. Die ganze Konfiguration bleibt als Black Box die nun - zum Glück worx :-) – LeO

+0

Um ehrlich zu sein, muss ich auch die genauen Konfigurationen nachschauen, wenn ich ein neues Projekt starte oder Protokollabhängigkeiten aktualisiere .. sollte meiner Meinung nach viel einfacher sein! Schön, dass es funktioniert! –

Verwandte Themen