【问题标题】:No appenders could be found for logger(log4j)?找不到记录器(log4j)的附加程序?
【发布时间】:2012-09-13 23:35:37
【问题描述】:

我已将 log4j 放入构建路径,但在运行应用程序时收到以下消息:

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

这些警告是什么意思?这里的 appender 是什么?

【问题讨论】:

  • 这似乎是一个运行时警告。你确定你在编译的时候看到了这个?
  • 您是否尝试访问警告最后一行中的 URL?
  • 是的!!!但它并没有说太多......我发现我需要一个属性文件来配置我的appender!
  • 手动编辑配置文件添加appender。确保您拥有正确且有效的配置文档。

标签: java eclipse log4j


【解决方案1】:

尝试运行单元测试时,我在 IntelliJ 中收到此错误消息。我同时打开了 Eclipse 和 IntelliJ,这可能导致了这个问题。在我关闭两个 IDE 并运行 maven 命令行构建后,错误消失了。

【讨论】:

    【解决方案2】:

    我认为您应该了解 log4j jar 文件或 Java 代码在哪里查找 log4j 配置文件。

    src/main/resources/log4j.properties 是 Eclipse 路径。 将它们放置在适当的位置,这样您就不必在代码中硬编码绝对路径。

    阅读我的文章和示例解决方案 https://askyourquestions.info/how-to-see-where-the-log-is-logger-in-slf4j/

    【讨论】:

      【解决方案3】:

      对我来说,原因显然不同,而且错误信息具有误导性。

      在我的 build.gradle 中只有这个,它会抱怨 slf4j 在日志的开头丢失,但仍然会记录一些东西,尽管格式很差:

          compile 'log4j:log4j:1.2.17'
      

      即使我在src/main/java/log4j.properties 中定义了它们,添加该依赖项也会导致我讨论的“找不到附加程序”错误消息:

          compile 'log4j:log4j:1.2.17'
          compile 'org.slf4j:slf4j-log4j12:1.7.25'
      

      最后,添加以下依赖项(我只是通过从另一个项目中复制它来猜测的)解决了这个问题:

          compile 'log4j:log4j:1.2.17'
          compile 'org.slf4j:slf4j-log4j12:1.7.25'
          compile 'commons-logging:commons-logging:1.2'
      

      我不知道为什么,但是这样就可以了。对此有何见解?

      【讨论】:

        【解决方案4】:

        考虑 log4j JVM 参数 Dlog4j.configuration

        一般:

        添加指出 log4j 配置文件的 JVM 参数。 语法如下:

        java [ options ] -jar file.jar [ arguments ]
        

        一个真实的命令行示例如下:

        java -Dlog4j.configuration=conf/log4j.xml -jar myJarFile.jar myArg1 myArg2
        

        对于 IntelliJ IDE 用户:

        1.Run/Debug Configurations
        2.Edit configurations...
        3.VM options
        4.Enter the same value also starting with "-D"
        

        提示:

        1.Eclipse IDE 用户会找到等效的方法

        2.对于运行/调试配置编辑器,很可能在开始时,您的特定可执行文件不存在。根据您当前正在处理的项目的大小,浏览目录以找到它可能会令人不快。如果在继续运行/调试配置之前运行/执行文件(单击播放)一次,无论执行结果如何,都不会那么麻烦。

        3.注意你的工作目录、相对路径和类路径。

        【讨论】:

          【解决方案5】:

          首先:创建一个log4j.properties文件

          # Root logger option
          log4j.rootLogger=INFO, stdout
          
          # Direct log messages to stdout
          log4j.appender.stdout=org.apache.log4j.ConsoleAppender
          log4j.appender.stdout.Target=System.out
          log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
          log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
          

          把它放在 src/main/resources/ 中

          之后,使用这两个依赖项:

          <dependency>
                      <groupId>org.slf4j</groupId>
                      <artifactId>slf4j-api</artifactId>
                      <version>1.7.5</version>
                  </dependency>
                  <dependency>
                      <groupId>org.slf4j</groupId>
                      <artifactId>slf4j-log4j12</artifactId>
                      <version>1.7.5</version>
                  </dependency>
          

          需要将这个最终依赖添加到 POM 文件中:

          <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
                  <dependency>
                      <groupId>org.springframework</groupId>
                      <artifactId>spring-context</artifactId>
                      <version>5.1.5.RELEASE</version>
                  </dependency>
          

          【讨论】:

            【解决方案6】:

            如果您使用的是 Eclipse,并且在一切正常之前突然出现此问题,请尝试转到 Project - Clean - Clean

            【讨论】:

              【解决方案7】:

              我在尝试运行 JUnit 测试类时遇到了同样的问题。

              我在 src/test/resources 文件夹中手动添加 log4j.properties 文件后,问题得到解决。

              将以下代码添加到 log4j.properties 文件中解决了这个问题:

              # Root logger option
              log4j.rootLogger=INFO, file, stdout
              
              # Direct log messages to a log file
              log4j.appender.file=org.apache.log4j.RollingFileAppender
              log4j.appender.file.File=C:\\logging.log
              log4j.appender.file.MaxFileSize=10MB
              log4j.appender.file.MaxBackupIndex=10
              log4j.appender.file.layout=org.apache.log4j.PatternLayout
              log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
              
              # Direct log messages to stdout
              log4j.appender.stdout=org.apache.log4j.ConsoleAppender
              log4j.appender.stdout.Target=System.out
              log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
              log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
              

              【讨论】:

                【解决方案8】:

                我也有这个问题。 我只是忘记在 IntelliJ IDEA 中标记资源目录

                1. 右键单击您的目录
                2. 将目录标记为
                3. 资源根

                【讨论】:

                  【解决方案9】:

                  这里的大多数答案都建议将log4j.properties文件放在正确的位置(对于maven项目,它应该位于src/main/resources

                  但对我来说,问题是我的log4j.properties 配置不正确。这是一个适合我的示例,您可以先试用一下。

                  # Root logger option
                  log4j.rootLogger=INFO, stdout
                  
                  # Direct log messages to stdout
                  log4j.appender.stdout=org.apache.log4j.ConsoleAppender
                  log4j.appender.stdout.Target=System.out
                  log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
                  log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
                  

                  【讨论】:

                  • log4j 认为“找不到文件”和“文件中的规范不完整”是同一个错误的事实是浪费时间。
                  • 对我来说,这是最好的答案。我投票赞成,我在你的回答中添加了一些解释。
                  【解决方案10】:

                  当 Log4j Java 代码正在搜索以在您的程序中创建第一条日志行时,Log4J 会显示此警告消息。

                  此时,Log4j 做了两件事

                  1. 搜索log4j.properties文件
                  2. 它搜索以实例化log4j.properties 中定义的附加程序

                  如果log4J 没有找到log4j.properties 文件,或者如果log4j.rootlogger 中声明的附加程序未在log4j.properties 文件的其他地方定义,则会显示警告消息。

                  注意:属性文件的内容必须正确。

                  以下内容不正确

                  log4j.rootLogger=file
                  
                  log4j.appender.FILE=org.apache.log4j.FileAppender
                  log4j.appender.FILE.File=c:/Trace/MsgStackLogging.log
                  log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
                  log4j.appender.FILE.layout.ConversionPattern=%m%n
                  log4j.appender.FILE.ImmediateFlush=true
                  log4j.appender.FILE.Threshold=debug
                  log4j.appender.FILE.Append=false
                  

                  因为file appender 在log4j.rootlogger 语句中以小写形式声明,并在log4j.appender 语句中使用大写形式定义!

                  正确的文件应该是

                  log4j.rootLogger=FILE
                  
                  log4j.appender.FILE=org.apache.log4j.FileAppender
                  log4j.appender.FILE.File=c:/Trace/MsgStackLogging.log
                  log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
                  log4j.appender.FILE.layout.ConversionPattern=%m%n
                  log4j.appender.FILE.ImmediateFlush=true
                  log4j.appender.FILE.Threshold=debug
                  log4j.appender.FILE.Append=false
                  

                  如果使用了 MAVEN,则必须将 log4j.properties 文件放入 src/main/resources 并启动 MAVEN 构建。

                  然后将Log4j.properties 文件复制到target/classes 文件夹中。

                  Log4J 使用它在target/classes 中找到的log4j.properties 文件!

                  【讨论】:

                    【解决方案11】:

                    这个网站上的解决方案对我有用https://crunchify.com/java-how-to-configure-log4j-logger-property-correctly/。我现在根本看不到来自 log4j 的警告

                    我把它放在一个 log4j.properties 文件中,然后放在 src/main/resources 中

                    # This sets the global logging level and specifies the appenders
                    log4j.rootLogger=INFO, theConsoleAppender
                    
                    # settings for the console appender
                    log4j.appender.theConsoleAppender=org.apache.log4j.ConsoleAppender
                    log4j.appender.theConsoleAppender.layout=org.apache.log4j.PatternLayout
                    log4j.appender.theConsoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
                    

                    【讨论】:

                      【解决方案12】:

                      第一次导入:

                       import org.apache.log4j.PropertyConfigurator;
                      

                      然后将以下代码添加到main方法中:

                      String log4jConfPath ="path to/log4j.properties";
                      PropertyConfigurator.configure(log4jConfPath);
                      

                      路径处创建一个文件,并将以下代码添加到该文件中。

                      log4j.rootLogger=INFO, stdout
                      log4j.appender.stdout=org.apache.log4j.ConsoleAppender
                      log4j.appender.stdout.Target=System.out
                      log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
                      log4j.appender.stdout.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
                      

                      【讨论】:

                        【解决方案13】:

                        如果您与很多项目一起工作,您可能会遇到风格问题。

                        *您必须有一个 lof4j.properties 文件,并且该文件包含其他项目的日志属性。

                        *另外你可以尝试在项目运行时将log4j属性文件放入src路径Linux操作系统,其他项目的libs和log4.properties文件可以在一个文件夹下放入类路径中的某个位置。

                        【讨论】:

                          【解决方案14】:

                          也许在java构建路径中添加包含log4j的相关项目,当我在使用eclipse的mahout项目中遇到这个问题时,我将mahout_h2o添加到其中,它可以工作!

                          【讨论】:

                            【解决方案15】:

                            添加以下代码作为第一个代码:

                            Properties prop = new Properties();
                            prop.setProperty("log4j.rootLogger", "WARN");
                            PropertyConfigurator.configure(prop);
                            

                            【讨论】:

                              【解决方案16】:

                              如果 log4j.properties 确实在类路径上,您正在使用 Spring Boot 制作 WAR 文件以部署到应用服务器,您将省略 web.xml 文件以支持 Spring Boot 的自动配置,并且您没有得到任何日志消息,您都需要显式配置 Log4j。假设您使用的是 Log4j 1.2.x:

                              public class AppConfig extends SpringBootServletInitializer {
                              
                                  public static void main( String[] args ) {
                                      // Launch the application
                                      ConfigurableApplicationContext context = SpringApplication.run( AppConfig.class, args );
                                  }
                              
                                  @Override
                                  protected SpringApplicationBuilder configure( SpringApplicationBuilder application ) {
                                      InputStream log4j = this.getClass().getClassLoader().getResourceAsStream("log4j.properties");
                                      PropertyConfigurator.configure(log4j);
                                      return application;
                                  }
                              
                              // Other beans as required...
                              }
                              

                              【讨论】:

                                【解决方案17】:

                                这可能发生的另一个原因(在 RCP4 中)是您在目标文件中使用了多个日志记录框架。例如,如果您在目标文件内容选项卡中使用 slf4j、log4j 和 ch.qos.logback.slf4j 的组合,就会发生这种情况。

                                【讨论】:

                                  【解决方案18】:

                                  在我的例子中,错误是标志“additivity”。如果根项目包为“false”,则子包将没有附加程序,您将看到“appender not found”错误。

                                  【讨论】:

                                    【解决方案19】:

                                    确保属性文件已正确设置。 再次,编译器似乎找不到属性文件,您可以在pom中设置如下(仅当您使用maven项目时)。

                                    <build>
                                           <sourceDirectory> src/main/java</sourceDirectory>
                                           <testSourceDirectory> src/test/java</testSourceDirectory>
                                            <resources>
                                                 <resource>
                                                      <directory>resources</directory>
                                                 </resource>
                                            </resources>           
                                    </build >
                                    

                                    【讨论】:

                                    • 这个!我花了几个小时才找到答案。我的案例代码在 Linux 中运行良好,但在 Windows(相同的 NB IDE)中出现此错误,并且上述所有解决方案都不起作用!
                                    【解决方案20】:

                                    我在使用 log4j2 时遇到了同样的问题。我的问题是由于使用了错误的依赖库引起的:

                                    <dependency>
                                            <groupId>org.slf4j</groupId>
                                            <artifactId>slf4j-log4j12</artifactId>
                                            <scope>runtime</scope>
                                        </dependency>
                                    

                                    相反,我应该使用:

                                    <dependency>
                                            <groupId>org.apache.logging.log4j</groupId>
                                            <artifactId>log4j-slf4j-impl</artifactId>
                                            <scope>runtime</scope>
                                        </dependency>
                                    

                                    就我而言,我在“资源”目录中定义了一个 log4j2.xml,并指定使用它:

                                    System.setProperty("log4j.configurationFile", "log4j2.xml");
                                    

                                    【讨论】:

                                      【解决方案21】:

                                      这只是一个警告。

                                      修复

                                      当无法找到默认配置文件log4j.propertieslog4j.xml 并且应用程序未执行显式配置时,会发生这种情况。

                                      要解决这个问题,只需将log4j.propertieslog4j.xml 创建/复制到类路径 上的位置(通常与jar 文件相同)。

                                      可选地设置 java 选项:-Dlog4j.configuration=file:///path/to/log4j.properties.

                                      log4j使用Thread.getContextClassLoader().getResource()定位默认配置文件,不直接检查文件系统。知道放置log4j.propertieslog4j.xml 的适当位置需要了解使用中的类加载器的搜索策略。 log4j 不提供默认配置,因为在某些环境中可能禁止向控制台或文件系统输出。

                                      调试

                                      为了调试,你可以尝试使用-Dlog4j.debug=true参数。

                                      log4j.properties的配置

                                      log4j.properties的示例配置:

                                      # Set root logger level to DEBUG and its only appender to A1.
                                      log4j.rootLogger=DEBUG, A1
                                      
                                      # A1 is set to be a ConsoleAppender.
                                      log4j.appender.A1=org.apache.log4j.ConsoleAppender
                                      
                                      # A1 uses PatternLayout.
                                      log4j.appender.A1.layout=org.apache.log4j.PatternLayout
                                      log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
                                      
                                      # Print only messages of level WARN or above in the package com.foo.
                                      log4j.logger.com.foo=WARN
                                      

                                      这是另一个使用多个附加程序的配置文件:

                                      log4j.rootLogger=debug, stdout, R
                                      
                                      log4j.appender.stdout=org.apache.log4j.ConsoleAppender
                                      log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
                                      
                                      # Pattern to output the caller's file name and line number.
                                      log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
                                      
                                      log4j.appender.R=org.apache.log4j.RollingFileAppender
                                      log4j.appender.R.File=example.log
                                      
                                      log4j.appender.R.MaxFileSize=100KB
                                      # Keep one backup file
                                      log4j.appender.R.MaxBackupIndex=1
                                      
                                      log4j.appender.R.layout=org.apache.log4j.PatternLayout
                                      log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
                                      

                                      Apache Solr

                                      如果使用 Solr,请将 &lt;solr&gt;/example/resources/log4j.properties 复制到 类路径 上的某个位置。

                                      来自 Solr 的 log4j.properties 的示例配置如下:

                                      #  Logging level
                                      solr.log=logs/
                                      log4j.rootLogger=INFO, file, CONSOLE
                                      
                                      log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
                                      
                                      log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
                                      log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x \u2013 %m%n
                                      
                                      #- size rotation with log cleanup.
                                      log4j.appender.file=org.apache.log4j.RollingFileAppender
                                      log4j.appender.file.MaxFileSize=4MB
                                      log4j.appender.file.MaxBackupIndex=9
                                      
                                      #- File to log to and log format
                                      log4j.appender.file.File=${solr.log}/solr.log
                                      log4j.appender.file.layout=org.apache.log4j.PatternLayout
                                      log4j.appender.file.layout.ConversionPattern=%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS}; %C; %m\n
                                      
                                      log4j.logger.org.apache.zookeeper=WARN
                                      log4j.logger.org.apache.hadoop=WARN
                                      
                                      # set to INFO to enable infostream log messages
                                      log4j.logger.org.apache.solr.update.LoggingInfoStream=OFF
                                      

                                      另见:

                                      【讨论】:

                                        【解决方案22】:

                                        当从 Eclipse 运行 JUnit 测试时,我的 Eclipse 安装找不到 log4j.properties,即使该文件位于 src/test/resources

                                        原因是 Eclipse(或 m2e 连接器)没有将内容从 src/test/resources 复制到预期的输出文件夹 target/test-classes - 根本原因是在 Java 构建路径 -> Source 选项卡 -> 构建路径上的源文件夹 -> src/test/resources,不知何故在那里是一个Excluded: ** 条目。我删除了那个 excluded 条目。

                                        或者,我可以手动将src/test/resources/log4j.properties 复制到target/test-classes/log4j.properties

                                        【讨论】:

                                          【解决方案23】:

                                          您似乎需要将 log4j.properties 文件的位置添加到 Eclipse 中的类路径中。

                                          确保您的项目已在 Eclipse 中打开,然后单击 Eclipse 顶部的“运行”菜单并单击以下内容:

                                          1. 运行
                                          2. 运行配置
                                          3. 类路径(选项卡)
                                          4. 用户条目
                                          5. 高级(右侧按钮)
                                          6. 添加文件夹
                                          7. 然后导航到包含您的 log4j.properties 文件的文件夹
                                          8. 申请
                                          9. 运行

                                          错误消息不应再出现。

                                          【讨论】:

                                          • 警告消息现在没有出现,但日志仍然没有写入所需的位置
                                          【解决方案24】:

                                          原因可能是某些地方缺少static这个词:

                                          final static Logger logging = Logger.getLogger(ProcessorTest.class);
                                          

                                          如果我将 logger 设为实例字段,我会收到这样的警告:

                                          No appenders could be found for logger (org.apache.kafka.producer.Sender)
                                          

                                          更糟糕的是,警告不是指向错误所在的ProcessorTest,而是指向一个完全不同的类(Sender)作为问题的根源。 那个类有正确的设置记录器,不需要任何改变!我们可以找很久的问题!

                                          【讨论】:

                                            【解决方案25】:

                                            在 java eclipse 中复制你的 conf_ref 到 conf 文件夹。

                                            【讨论】:

                                              【解决方案26】:

                                              确保您的项目已在 Eclipse 中打开,然后单击 Eclipse 顶部的“运行”菜单并单击以下内容:

                                              1. 运行

                                              2. 运行配置

                                              3. 类路径(选项卡)

                                              4. 用户条目

                                              5. 在右侧添加jar

                                              6. 添加 log4j jar 文件

                                              7. 申请

                                              8. 运行

                                              错误消息不应再出现。

                                              【讨论】:

                                                【解决方案27】:

                                                这个Short introduction to log4j 指南有点旧,但仍然有效。

                                                该指南将为您提供有关如何使用记录器和附加程序的一些信息。


                                                为了让你继续前进,你可以采取两种简单的方法。

                                                第一个是将这一行添加到您的 main 方法中:

                                                BasicConfigurator.configure();
                                                

                                                第二种方法是将此标准log4j.properties(取自上述指南)文件添加到您的类路径中:

                                                # Set root logger level to DEBUG and its only appender to A1.
                                                log4j.rootLogger=DEBUG, A1
                                                
                                                # A1 is set to be a ConsoleAppender.
                                                log4j.appender.A1=org.apache.log4j.ConsoleAppender
                                                
                                                # A1 uses PatternLayout.
                                                log4j.appender.A1.layout=org.apache.log4j.PatternLayout
                                                log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
                                                

                                                【讨论】:

                                                • 第一步就OK了。引用 log4j 指南的简短介绍
                                                • 对于新的偶然发现...将 log4j.properties 文件添加到 src/main/resources 并且假设您有一个 maven 项目。 src/main/resources 中的内容包含在类路径中。
                                                • 在 IntelliJ IDEA 打开模块设置中选择你的资源文件夹并点击资源,它会自动将你的每一个资源添加到类路径中。
                                                • 没有帮助。我将 Eclipse Neon 用于 C++,并将 log4j.properties 与 eclipse 可执行文件放在一起并没有帮助
                                                • log4j.rootLogger=DEBUG, A1 是我一直错过的那一行。
                                                【解决方案28】:

                                                如前所述,有两种方法

                                                第一个是将这一行添加到您的 main 方法中:

                                                BasicConfigurator.configure();
                                                

                                                第二种方法是将此标准 log4j.properties 文件添加到您的类路径:

                                                在采用第二种方法时,您需要确保正确初始化文件, 例如。

                                                Properties props = new Properties();
                                                props.load(new FileInputStream("log4j property file path"));
                                                props.setProperty("log4j.appender.File.File", "Folder where you want to store log files/" + "File Name");
                                                

                                                确保创建所需的文件夹来存储日志文件。

                                                【讨论】:

                                                • 我遇到了同样的问题,我使用了 BasicConfigurator.configure();在 main 方法中,现在代码正在正确执行。
                                                【解决方案29】:

                                                我在 intellij 12 中尝试使用 maven 构建可执行 jar 时遇到了这个问题。结果是因为 java 清单文件不包含类路径,所以在根级别找不到 log4j 属性文件(执行 jar 文件的位置。)

                                                仅供参考,我得到这样的记录器:

                                                Logger log = LogManager.getLogger(MyClassIWantedToLogFrom.class);
                                                

                                                我能够让它与包含以下内容的 pom 文件一起使用:

                                                         <plugin>
                                                            <artifactId>maven-assembly-plugin</artifactId>
                                                            <version>2.2-beta-5</version>
                                                            <configuration>
                                                                <archive>
                                                                    <manifest>
                                                                        <addClasspath>true</addClasspath> 
                                                                        <mainClass>com.mycompany.mainPackage.mainClass</mainClass>
                                                                    </manifest>
                                                                    <manifestEntries>
                                                                        <Class-Path>.</Class-Path> <!-- need to add current directory to classpath properties files can be found -->
                                                                    </manifestEntries>
                                                                </archive>
                                                                <descriptorRefs>
                                                                    <descriptorRef>jar-with-dependencies</descriptorRef>
                                                                </descriptorRefs>
                                                            </configuration>
                                                            <executions>
                                                                <execution>
                                                                    <id>make-assembly</id>
                                                                    <phase>package</phase>
                                                                    <goals>
                                                                        <goal>single</goal>
                                                                    </goals>
                                                                </execution>
                                                            </executions>
                                                        </plugin>
                                                

                                                【讨论】:

                                                  【解决方案30】:

                                                  快速解决方案:

                                                  1. 将代码添加到主函数

                                                    String log4jConfPath = "/path/to/log4j.properties";
                                                    PropertyConfigurator.configure(log4jConfPath);
                                                    
                                                  2. /path/to

                                                    处创建一个名为 log4j.properties 的文件
                                                    log4j.rootLogger=INFO, stdout
                                                    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
                                                    log4j.appender.stdout.Target=System.out
                                                    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
                                                    log4j.appender.stdout.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
                                                    

                                                  【讨论】:

                                                  • 将 log4j.properties 文件放在 src/test/resource 等资源目录中
                                                  • 避免显式声明 log4j.properties 路径;将它放在您的项目文件夹中并像 String log4jConfPath = System.getProperty("user.dir")+File.separator+"log4j.properties"; 一样访问它
                                                  猜你喜欢
                                                  • 1970-01-01
                                                  • 2015-07-23
                                                  • 1970-01-01
                                                  • 2015-06-11
                                                  • 1970-01-01
                                                  • 2018-03-21
                                                  • 2018-03-18
                                                  相关资源
                                                  最近更新 更多