繁体   English   中英

如何设置log4j?

[英]How to set up log4j?

我试图使用jzy3d api绘制3d图,我尝试使用maven进行设置(这是我的新手),我基本上只是复制了api页面告诉我的内容,但是我一直在遇到log4j警告。

<?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.

根据警告,听起来Logger的log4j.xml(或log4j2.xml)文件中的AppenderRef名称可能不正确。 在此答案中,我正在使用log4j2。

示例log4j2.xml文件:

<?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>

细节:

  • 追加者
    • 要将日志打印到的位置列表。
    • 可:
    • 安慰
    • 文件
    • 滚动文件
    • 其他项目在: Apache-Log4j2-Appenders
  • 记录仪
    • 记录器列表和附加程序列表。
    • 在某些情况下,您可能希望Logger具有多个附加程序。
    • <Logger ...>AppenderRefref必须与您要登录的附加程序的名称匹配,无论它是File,Console等。

在上面的文件上下文中,我在<Appenders>块内命名了一个File <Loggers>块中,我使用<AppenderRef ref="ThisLogger" />引用了Logger。


更新1:

在pom.xml中,您缺少一个插件。 您应该对此进行参考:

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

如果这不是您想要的版本,请随时检查MvnRepository


希望这可以帮助。 如果没有,请让我知道什么不起作用,我将尽一切可能提供帮助。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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