2017-04-03 87 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

说实话,我还需要查找确切的配置,当开始一个新的项目或更新日志依赖项..应该是我的意见更容易!很好,它的作品! –