【问题标题】:Setting up Log4j2 in NetBeans, basic configuration在 NetBeans 中设置 Log4j2,基本配置
【发布时间】:2017-08-22 23:42:13
【问题描述】:

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

【问题讨论】:

    标签: java netbeans log4j2


    【解决方案1】:
    ...
      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();
        //
        ...
      }
    ...
    

    【讨论】:

      【解决方案2】:
      1. 您需要下载this archive of binaries

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

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

        -Dlog4j.configurationFile=/path/to/your/file/log4j2.xml 
        

      进入文本字段“VM-Options”

      1. 使用您的配置在指定路径(我在项目的主文件夹中完成)创建一个名为 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>
        

        这将创建两个附加程序,一个 ConsoleAppender 和一个 FileAppender,它们分别登录到 System.out 和一个名为“myLog.log”的文件。 INFO 和更高级别的日志消息会记录到文件中,只有错误会打印到控制台。

      2. 这是一些示例代码来演示如何使用 Log4j2:

        import java.io.IOException;
        import org.apache.logging.log4j.LogManager;
        import org.apache.logging.log4j.Logger;
        
        public class Demo {
        
            private final static Logger log = LogManager.getLogger(Demo.class);
        
            public static void main(String[] args) throws IOException {
                log.info("starting...");
                try {
                    ((Object) null).toString();
                } catch (Exception e) {
                    log.error("error message");
                }
                log.info("some info.");
            }
        }
        

      运行它会导致控制台输出

          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.
      

      我希望这为您省去了一些麻烦,因为我花了很长时间才弄清楚这一点。随意编辑这篇文章 - 我不知道我的陈述有多正确,这些只是对我有用的步骤。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-06
        • 2013-04-09
        • 2018-05-17
        • 2014-10-18
        相关资源
        最近更新 更多