当前位置: 首页 > 知识库问答 >
问题:

在NetBeans中设置Log4j2,基本配置

金理
2023-03-14

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

共有1个答案

荀靖
2023-03-14

>

  • 您需要下载此二进制文件存档

    将“log4j-api-2.8.1.jar”和“log4j-core-2.8.1.jar”添加到项目中。(在NetBeans中:File->Project Properties->libraries。我必须将它添加到“compile”和“run”中,否则在运行时会出现错误。)

    告诉Log4j文件的位置。(在NetBeans中:文件->项目属性->运行.粘贴

    -Dlog4j.configurationFile=/path/to/your/file/log4j2.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>
    
    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.
    

    我希望这能给你省点麻烦,因为我花了不少时间才弄明白。请随意编辑这篇文章--我不知道我的陈述有多正确,这些只是对我起作用的步骤。

  •  类似资料:
    • 问题内容: 我在代码点火器中具有这样的目录结构: 当我在index.php中访问图像时,我使用了: href为: 我认为在代码点火器中访问图像或库时,最好不要包含。所以,我试图改变 在 以 现在,我更新了图像源和其他库源,删除了本地主机和目录文件夹的名称: 但是我得到了错误。它说找不到对象。可以帮我吗? 问题答案: 在Config.php中 进入(外部应用程序文件夹) - 在URL中删除 访问UR

    • 我在mac os big Sur上。我完全重新安装了java、jdk和NetBeans。它开始了,但是当我试图安装插件时,我得到了一条错误消息,上面写着“jdk丢失,需要运行一些netbeans模块”。在此之后,我将netbeans_jdkhome设置为我的jdk位置。现在我的netbeans甚至无法打开(最新版本)

    • 您已经知道了,Emacs 的配置文件为 ~/.emacs 。配置文件中,以 ; 起始到行末的部分为注释。 让我们些简单配置一下: 例 25.1. emacs 配置 ~/.emacs ;;======================================== ;;添加 Emacs 搜索目录 可以将自定的扩展放该目录 ;;==================================

    • 我是春靴的新手。我有一个跑步Spring靴项目。我想使用log4j2(由于项目限制,我必须使用log4j2本身)将不同级别的所有日志重定向到一个名为'test.log'的日志文件。 ---我的测试API的控制器也有以下测试日志行: ---在我的理解中,我已经在代码中包含了所有必需的内容。但是我面临着这个问题--当我使用API时,只有hibernate调试记录器被添加到test.log中;我在con

    • 基础设置 机器人信息 自动应答

    • 请考虑以下示例:https://logging.apache.org/log4j/2.x/manual/configuration.html 使用上面的示例,我得到了以下输出: 并且没有记录任何内容。 为了解决这个问题,我必须使用其他模式,比如: 这是唯一的工作方式和日志的东西。 顺便说一句,我正在使用以下maven依赖项导入: