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

具有多个文件附加符的Log4j2 json配置

牛昱
2023-03-14

我有一个log4j2 json配置文件,但似乎无法在Appender部分中放置多个“file”附加符。我想做的是用日志语句记录两个两个文件:一个文件是用于info级别或更高级别的,而另一个文件是调试级别的。

`"configuration": 
{       
    "appenders": 
    {
        "Console": {
            "name": "ConsoleAppender",
            "target": "SYSTEM_OUT",
            "PatternLayout": {
                "pattern": "%d [%t] %-5p %c - %m%n"
            }
        },
        "File": {
            "name":"FileAppenderInfo",
            "fileName":"/logs/info-logs.log",
            "PatternLayout": {
                "pattern":"%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"
            }
        },
        "File": {
           "name": "FileAppenderDebug",
           "fileName": "/logs/debug-logs.log",
           "PatternLayout": {
                "pattern":"%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"
            },
            "DefaultRolloverStrategy": {
                "max": "10"
            }
       }
    },
    "loggers": {
       "logger": {
            "name": "com.nf.eb2b.logging.DPLogger",
            "level": "debug",
            "appender-ref": [{"ref": "ConsoleAppender", "level":"info"},{"ref": "FileAppenderInfo", "level":"info"}, {"ref": "FileAppenderDebug", "level":"debug"}]
        },
        "root": {
            "AppenderRef": [{"ref": "ConsoleAppender"}]
        }
    }
}

}

共有1个答案

尹小云
2023-03-14

可以在文件追加器定义中使用追加器的数组([]):

{
  "configuration": {
    "appenders": {
      "Console": {
        "name": "ConsoleAppender",
        "target": "SYSTEM_OUT",
        "PatternLayout": {
          "pattern": "%d [%t] %-5p %c - %m%n"
        }
      },
      "File": [
        {
          "name": "FileAppenderInfo",
          "fileName": "/logs/info-logs.log",
          "PatternLayout": {
            "pattern":"%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"
          }
        },
        {
          "name": "FileAppenderDebug",
          "fileName": "/logs/debug-logs.log",
          "PatternLayout": {
            "pattern":"%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"
          },
          "DefaultRolloverStrategy": {
            "max": "10"
          }
        }
      ]
    },
    "loggers": {
      "logger": [
        {
          "name": "InfoLogger",
          "level": "info",
          "AppenderRef": [
            {
              "ref": "FileAppenderInfo"
            }
          ]
        },
        {
          "name": "DebugLogger",
          "level": "debug",
          "AppenderRef": [
            {
              "ref": "FileAppenderDebug"
            }
          ]
        }
      ],
      "root": {
        "AppenderRef": [
          {
            "ref": "ConsoleAppender"
          }
        ]
      }
    }
  }
}
 类似资料:
  • 所以我的问题是,当我用profile只运行applicaiton时,Spring是否合并了这两个profile,并且我可以在应用程序中看到和?

  • 问题内容: 我创建了一个小部件,该小部件显示一个简单的textview,可在配置活动中将其作为Edittext编辑。我将输入的文本与共享的首选项一起保存,因此用户可以点击小部件来编辑文本,并且已经输入的文本将出现在edittextfield中。我的问题是这个。我希望用户能够添加多个窗口小部件,但是当添加第二个窗口小部件时,将从共享首选项中加载与其他窗口小部件中相同的文本。并且,当在widget上被

  • 我知道有很多问题涉及这个主题,但我不知道如何达到以下要求。 问题1:是否可以使用包装器对象实现这样的映射?(参见所引用问题的第一个答案-@modelattribute) 问题2:使用上述问题中回答的以下控制器方法 我假设它适用于单个文件。如何定义/描述请求部分以实现或[]? 提前道谢!

  • 问题内容: 在node.js中,我可以列出具有通配符匹配的文件吗? 在fs文档中找不到通配符匹配的信息。 问题答案: Node核心未涵盖此范围。您可以检查该模块的内容。npmjs.org还是查找各种模块的绝佳资源。 用法

  • 问题内容: 我想拥有一个Class对象,但是我想强迫它代表的任何类扩展A类并实现接口B。 我可以: 要么: 但我不能两者都做。有没有办法做到这一点? 问题答案: 实际上,你可以做你想做的事。如果要提供多个接口或一个类加接口,则必须使通配符看起来像这样: 请参见sun.com上的泛型教程,特别是页面底部的“ 绑定类型参数”部分。实际上,如果需要,你可以列出多个接口,并& InterfaceName根

  • 对集群设置有点困惑: > Zookeeper可以通过配置myid(1,2,3...)将其设置为群集例如,在zoo.cfg文件中具有zookeeper1:2888:3888、zookeeper2:2889:3889 对于Kafka,在server.properties文件中,是否必须为参数zookeeper.connect指定zookeeper服务器的完整列表,还是只要1就足够了?有什么不同吗?我见