Java 在NetBeans中设置Log4j2,基本配置

Java 在NetBeans中设置Log4j2,基本配置,java,netbeans,log4j2,Java,Netbeans,Log4j2,作为一个完全的初学者,我如何设置Log4j2(在Netbeans中)来将一些消息记录到控制台,而将其他消息记录到一个文件中? (我只找到了旧版本的指南,这让我陷入了麻烦,因为XML发生了变化。基本上,我正在更新中所做的工作,因为我认为这是一个好主意,但缺少一些提示) 您需要下载 将“log4j-api-2.8.1.jar”和“log4j-core-2.8.1.jar”添加到项目中。(在NetBeans中:文件->项目属性->库。我必须将它同时添加到“编译”和“运行”中,否则在运行时会出错。) 告

作为一个完全的初学者,我如何设置Log4j2(在Netbeans中)来将一些消息记录到控制台,而将其他消息记录到一个文件中? (我只找到了旧版本的指南,这让我陷入了麻烦,因为XML发生了变化。基本上,我正在更新中所做的工作,因为我认为这是一个好主意,但缺少一些提示)

  • 您需要下载

  • 将“log4j-api-2.8.1.jar”和“log4j-core-2.8.1.jar”添加到项目中。(在NetBeans中:文件->项目属性->库。我必须将它同时添加到“编译”和“运行”中,否则在运行时会出错。)

  • 告诉Log4j文件在哪里。(在NetBeans中:文件->项目属性->运行.粘贴)

    -Dlog4j.configurationFile=/path/to/your/file/log4j2.xml 
    
  • 进入文本字段“VM选项”

  • 使用您的配置在指定的路径(我在项目的主文件夹中创建了一个名为log4j2.XML的XML),例如

    <?xml version="1.0" encoding="UTF-8"?>
    
    <Configuration status="warn">
      <Appenders>
        <Console name="STDOUT" target="SYSTEM_OUT">
          <PatternLayout pattern="%m%n"/>
        </Console>
        <File name="FILE" fileName="logs/myLog.log">
          <PatternLayout>
            <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
          </PatternLayout>
        </File>
      </Appenders>
      <Loggers>
        <Root level="INFO">
          <AppenderRef ref="FILE" level="INFO"/>
          <AppenderRef ref="STDOUT" level="ERROR"/>
        </Root>
      </Loggers>
    </Configuration>
    
  • 运行此命令将导致控制台输出

        error message
    
    当文件包含

        2017-03-29 14:37:20,675 INFO l.Demo [main] starting...
        2017-03-29 14:37:20,676 ERROR l.Demo [main] error message
        2017-03-29 14:37:20,676 INFO l.Demo [main] some info.
    
    我希望这帮你省去了一些麻烦,因为我花了不少时间才弄明白。请随意编辑这篇文章-我不知道我的陈述有多正确,这些只是对我有用的步骤

    ...
      private static Logger LOG;
    
      private static void loggerInit() {
        //
        //System.setProperty("log4j.configurationFile", ".../etc/log4j2.properties");
        System.setProperty("log4j.configurationFile", ".../etc/log4j2.xml");
        LOG = LogManager.getLogger(Tosser.class);
      }
    
      public static void main(String[] args) throws Exception {
        //
        loggerInit();
        //
        ...
      }
    ...
    
  • 您需要下载

  • 将“log4j-api-2.8.1.jar”和“log4j-core-2.8.1.jar”添加到您的项目中。(在NetBeans中:文件->项目属性->库。我必须将其同时添加到“编译”和“运行”中,否则在运行时会出错。)

  • 告诉Log4j文件在哪里。(在NetBeans中:文件->项目属性->运行.粘贴)

    -Dlog4j.configurationFile=/path/to/your/file/log4j2.xml 
    
  • 进入文本字段“VM选项”

  • 使用您的配置在指定的路径(我在项目的主文件夹中创建了一个名为log4j2.XML的XML),例如

    <?xml version="1.0" encoding="UTF-8"?>
    
    <Configuration status="warn">
      <Appenders>
        <Console name="STDOUT" target="SYSTEM_OUT">
          <PatternLayout pattern="%m%n"/>
        </Console>
        <File name="FILE" fileName="logs/myLog.log">
          <PatternLayout>
            <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
          </PatternLayout>
        </File>
      </Appenders>
      <Loggers>
        <Root level="INFO">
          <AppenderRef ref="FILE" level="INFO"/>
          <AppenderRef ref="STDOUT" level="ERROR"/>
        </Root>
      </Loggers>
    </Configuration>
    
  • 运行此命令将导致控制台输出

        error message
    
    当文件包含

        2017-03-29 14:37:20,675 INFO l.Demo [main] starting...
        2017-03-29 14:37:20,676 ERROR l.Demo [main] error message
        2017-03-29 14:37:20,676 INFO l.Demo [main] some info.
    
    我希望这帮你省去了一些麻烦,因为我花了不少时间才弄明白。请随意编辑这篇文章-我不知道我的陈述有多正确,这些只是对我有用的步骤

    ...
      private static Logger LOG;
    
      private static void loggerInit() {
        //
        //System.setProperty("log4j.configurationFile", ".../etc/log4j2.properties");
        System.setProperty("log4j.configurationFile", ".../etc/log4j2.xml");
        LOG = LogManager.getLogger(Tosser.class);
      }
    
      public static void main(String[] args) throws Exception {
        //
        loggerInit();
        //
        ...
      }
    ...