当前位置: 首页 > 面试题库 >

log4j无法使用我的log4j.properties初始化

陈浩
2023-03-14
问题内容

我有一个简单的log4j.property文件和一个使用log4j的简单程序。但是当我运行罐子时,我只会看到

log4j:WARN No appenders could be found for logger (package com.mycompany.hellolog4j).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

这是我使用记录器的方法:

package com.mycompany.hellolog4j;

import java.io.File;
import java.io.IOException;
import org.apache.log4j.*;

public class SimpleLogging
{

    public static void main(String args[]) throws IOException {

        Logger logger = Logger.getLogger(SimpleLogging.class.getPackage().toString());
       // SimpleLogging demo = new SimpleLogging(rbName);
        //demo.doLogging(name);
        logger.info("printing the message...");
    }
}

这是我的pom.xml的一部分

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.3.1</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathLayoutType>custom</classpathLayoutType>
                            <mainClass>com.mycompany.hellolog4j.SimpleLogging</mainClass>
                            <customClasspathLayout>../lib/log4j.jar ../log4j.properties</customClasspathLayout>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

这是我的log4j.properties

log4j.rootLogger = DEBUG, testAppender

log4j.logger.com.mycompany.hellolog4j=DEBUG, testAppender

log4j.appender.testAppender=org.apache.log4j.ConsoleAppender

log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.testAppender.layout.conversionPattern=%p-%m%n

现在从我的项目目录运行jar文件。这是我的项目目录

drwxr-xr-x 5 proger users 4096 2010-10-15 22:59 ./
drwxr-xr-x 3 proger users 4096 2010-10-15 22:27 ../
drwxr-xr-x 2 proger users 4096 2010-10-14 22:54 lib/
-rw-r--r-- 1 proger users  291 2010-10-15 23:00 log4j.properties
-rw-r--r-- 1 proger users 1689 2010-10-15 22:59 nbactions.xml
-rw-r--r-- 1 proger users 1987 2010-10-15 22:56 pom.xml
drwxr-xr-x 4 proger users 4096 2010-10-13 23:01 src/
drwxr-xr-x 6 proger users 4096 2010-10-15 22:59 target/

问题答案:

将log4j.properties文件放在src / main / resources中,以便将其捆绑到您的JAR文件中,并因此捆绑到类路径中。



 类似资料:
  • 问题内容: 我有一个使用Spring的类初始化我的Log4J日志工厂的Web应用程序。基本上,它使用不在类路径中的配置文件来初始化Log4J。 这是配置: 但是,在应用程序启动时出现此错误: 大量的Spring应用程序上下文初始化消息被打印到控制台。我认为这是因为Spring在有机会初始化记录器之前正在进行初始化应用程序的工作。如果很重要,我将在Log4J之上使用SLF4J。 有什么办法可以使Lo

  • 我们的控制台应用程序正在使用logback进行日志记录。这是一个倒退。类路径中的xml文件。 在大多数平台(Linux、Windows、jdk7或jdk8)上,日志记录按预期工作(通过日志返回)。 然而,在使用jdk 6的Mac上,当运行应用程序时,我们有时会看到: 似乎出于某种原因,选择log4j而不是logback进行日志记录。在我们的生活中。班这里我们通过slf4j登录: 这是完整的类路径:

  • 问题内容: 每当我尝试访问phpMyAdmin时,都会出现以下错误: “ 缺少mbstring扩展名。请检查您的PHP配置。 ” 我在CentOS 7服务器上运行LEMP堆栈。我选择使用PHP 7进行此安装。我在运行早期版本的PHP的相同设置上没有遇到此错误。 即使 mbstring.ini (/etc/php.d/)包含以下内容,也会返回false : 我100%确定mbstring模块已安装在

  • 场景如下:我有一个现有的web应用程序,它通过servlet初始化log4j: 不,我想重写这个初始化通过一个外部文件传递log4j.configurationJVM ardument:-Dlog4j.configuration=file:/usr/本地/log4j.xml 当我启动应用程序服务器时,我可以看到外部文件首先被拾取,但随后通过初始化servlet的内部文件将覆盖这些更改。 我的问题是

  • 问题内容: 我正在尝试学习log4j,所以我只是尝试做一些非常简单的事情。 但是做完之后我得到了; 你知道我错了吗? 谢谢你们 问题答案: 您在类路径中缺少或。 您可以使用 但是请注意,这只会登录到System.out,因此不建议这样做。您实际上应该使用上面的文件之一,然后将其写入日志文件。 一个非常简单的例子是

  • 我在这里缺少任何配置吗?我在谷歌上找不到任何东西...