2017-12-07 4 views
0

Ich habe versucht, nach einer Lösung für meinen Fehler zu suchen, jedoch aufgrund ähnlicher Fragen, die viel gefragt werden, hat der Sumpf der Ergebnisse nicht geholfen, eine Antwort auf meine Frage zu finden.slf4j log4j Hallo Weltprobleme

Ich versuche grundsätzlich eine einfache "Hallo Welt" in slf4j mit log4j zu arbeiten, damit ich sie später weiter anpassen kann.

Mein Projekt ist im Grunde die Maven Hallo Welt Projekt, leicht angepasst:

App.java:

package xx.xxxx.logging; 

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

public class App { 

    private static final Logger LOGGER = LoggerFactory.getLogger(App.class); 

    public static void main(String[] args) { 
     System.out.println("Hello World!"); 

     LOGGER.info("Hello Logger!"); 
    } 
} 

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

     <Appenders> 
       <Console name="STDOUT" target="System.out"> 
         <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"/> 
       </Console> 
     </Appenders> 

     <Loggers> 
       <Root level="ALL"> 
         <AppenderRef ref="STDOUT"/> 
       </Root> 
     </Loggers> 

</Configuration> 

pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>xx.xxxx.logging</groupId> 
    <artifactId>logging-test</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0-SNAPSHOT</version> 

    <name>logging-test</name> 

    <properties> 
    <jdk.version>1.8</jdk.version> 
    <java.version>1.8</java.version> 

    <maven.compiler.source>${java.version}</maven.compiler.source> 
    <maven.compiler.target>${java.version}</maven.compiler.target> 
    <sonar.java.source>${java.version}</sonar.java.source> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 

    <version.sl4j>1.7.21</version.sl4j> 
    <version.sl4j.log4j>2.0.1</version.sl4j.log4j> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>${version.sl4j}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-api</artifactId> 
     <version>${version.sl4j.log4j}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
     <version>${version.sl4j.log4j}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-slf4j-impl</artifactId> 
     <version>${version.sl4j.log4j}</version> 
    </dependency> 
    </dependencies> 

</project> 

Probieren laufen App.java ergibt die folgende Fehlermeldung:

2017-12-07 11:14:33,263 ERROR catching java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:133) 
    at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:744) 
    at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:683) 
    at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:675) 
    at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:349) 
    at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:150) 
    at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:364) 
    at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:422) 
    at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:146) 
    at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:75) 
    at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:37) 
    at org.apache.logging.log4j.LogManager.getContext(LogManager.java:263) 
    at org.apache.logging.slf4j.Log4jLoggerFactory$PrivateManager.getContext(Log4jLoggerFactory.java:98) 
    at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:84) 
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:44) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383) 
    at xx.xxxx.logging.App.<clinit>(App.java:8) 
Caused by: java.lang.IllegalArgumentException: No enum constant org.apache.logging.log4j.core.appender.ConsoleAppender.Target.System.out 
    at java.lang.Enum.valueOf(Enum.java:238) 
    at org.apache.logging.log4j.core.appender.ConsoleAppender$Target.valueOf(ConsoleAppender.java:57) 
    at org.apache.logging.log4j.core.appender.ConsoleAppender.createAppender(ConsoleAppender.java:98) 
    ... 22 more 

2017-12-07 11:14:33,268 ERROR Unable to invoke factory method in class class org.apache.logging.log4j.core.appender.ConsoleAppender for element Console. 
2017-12-07 11:14:33,269 ERROR Null object returned for Console in Appenders. 
2017-12-07 11:14:33,275 ERROR Unable to locate appender STDOUT for logger 
Hello World! 

Alle Leitungen, wie dies zu beheben wäre sehr dankbar.

+1

'verursacht durch folgen: java.lang.IllegalArgumentException: Keine Aufzählungskonstante org.apache.logging.log4j.core.appender.ConsoleAppender.Target.System. aus Versuchen Sie es mit 'SYSTEM_OUT' zu ersetzen – Touniouk

+0

Danke, das war genau der Fehler. – Michel

Antwort

0

Versuchen Sie, diese log4j Syntax nach https://logging.apache.org/log4j/2.x/manual/configuration.html

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
     <Appenders> 
      <Console name="Console-Appender" target="SYSTEM_OUT"> 
      <PatternLayout> 
       <pattern> 
        %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 
       </pattern> 
      </PatternLayout> 
      </Console> 
     </Appenders> 

     <Loggers> 
     <Root level="ALL"> 
      <AppenderRef ref="Console-Appender"/> 
     </Root> 
     </Loggers> 
</Configuration> 
Verwandte Themen