简体   繁体   中英

How to set up log4j?

I have trtied to use the jzy3d api to plot a 3d graph, I tried to set it up using maven (I am new to this), I basically just copied what the api page told me, but i am consistenly running into a log4j warning.

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.jzy3d</groupId>
    <artifactId>jzy3d-tutorials</artifactId>
    <version>1.0.3-SNAPSHOT</version>

    <name>Jzy3d Tutorials</name>

    <!--To retrieve Jzy3d dependencies
    <repositories>
        <repository>
            <id>jzy3d-snapshots</id>
            <name>Jzy3d Snapshots</name>
            <url>http://maven.jzy3d.org/snapshots/</url>
        </repository>
        <repository>
            <id>jzy3d-releases</id>
            <name>Jzy3d Releases</name>
            <url>http://maven.jzy3d.org/releases/</url>
        </repository>
    </repositories> -->

    <repositories>
        <repository>
            <id>Sonatype-snapshots</id>
            <name>Sonatyp Snapshots</name>
            <url>https://oss.sonatype.org/content/groups/public</url>
        </repository>
        <repository>
            <id>Sonatype-releases-staging</id>
            <name>Sonatype Releases Staging</name>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
        </repository>
    </repositories>


    <!--To deploy tutorials: 1) this project does not references master to be
        able to be build alone 2) master still reference this project to build it
        with the API involve being deployable by mvn deploy -->
    <!--<distributionManagement>
        <repository>
            <id>jzy3d-ftp-maven</id>
            <name>Jzy3d Maven Folder</name>
            <url>ftp://www.jzy3d.org/v1/maven/releases</url>
        </repository>
        <snapshotRepository>
            <id>jzy3d-ftp-maven</id>
            <name>Jzy3d Maven Folder SNAPSHOTS</name>
            <url>ftp://www.jzy3d.org/v1/maven/snapshots</url>
        </snapshotRepository>
    </distributionManagement>-->

    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <version.jzy3d>${project.version}</version.jzy3d>
        <version.java.source>1.8</version.java.source>
        <version.java.target>1.8</version.java.target>
        <version.mvn.compiler>3.0</version.mvn.compiler>
        <version.mvn.ftp>1.0-beta-6</version.mvn.ftp>
        <version.mvn.deploy>2.4</version.mvn.deploy>
        <version.mvn.javadoc>2.9.1</version.mvn.javadoc>
        <version.mvn.release>2.5.3</version.mvn.release>
        <version.libs.junit>4.10</version.libs.junit>
        <version.libs.swt>4.2.1</version.libs.swt>
    </properties>


    <dependencies>
        <dependency>
            <groupId>org.jzy3d</groupId>
            <artifactId>jzy3d-api</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>com.miglayout</groupId>
            <artifactId>miglayout</artifactId>
            <version>3.7.4</version>
        </dependency>
        <dependency>
            <groupId>com.opencsv</groupId>
            <artifactId>opencsv</artifactId>
            <version>3.7</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>${version.java.source}</source>
                    <target>${version.java.target}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>${version.mvn.deploy}</version>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
            <!--<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                </configuration>
            </plugin>-->

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
log4j:WARN No appenders could be found for logger (org.jzy3d.chart.factories.ChartComponentFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

From the warning, it sounds like the Logger may have an incorrect AppenderRef name in the log4j.xml (or log4j2.xml) file. In this answer, I am using log4j2.

Example log4j2.xml file:

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

  <!-- These are appenders -->
  <Appenders>
    <File name="ThisFile" target="this/path/to/someAppLog.log">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </File>
  </Appenders>

  <!-- These are Loggers -->
  <Loggers>
    <Logger level="info">
      <AppenderRef ref="ThisFile"/>
    </Logger>
  </Loggers>


</Configuration>

Details:

  • Appenders
  • Loggers
    • A list of loggers with a list of appenders.
    • In some cases, you might want a Logger to have more than one appender.
    • The AppenderRef s in the <Logger ...> must have its ref match the name of the appender you wanted to log to, whether it be a File, Console, etc.

In the file context above, I named a File inside the <Appenders> block. Inside the <Loggers> block, I referenced a Logger to it using <AppenderRef ref="ThisLogger" /> .


Update 1:

In your pom.xml, you are missing a plugin. You should make a reference to this:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.12.1</version>
</dependency>

If this is not the version you want, feel free to check the MvnRepository


Hope this helps. If it doesn't, let me know what's not working and I'll help out any way I can. :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM