Java 带有多个文件附加器的Log4j2 json配置

Java 带有多个文件附加器的Log4j2 json配置,java,logging,configuration,log4j2,Java,Logging,Configuration,Log4j2,我有一个log4j2json配置文件,似乎无法在Appender部分中放置多个“file”Appender。我要做的是用我的日志语句记录两个文件:一个文件用于信息级别和更高级别,而另一个文件用于调试级别 `"configuration": { "appenders": { "Console": { "name": "ConsoleAppender", "target": "SYSTEM_OUT",

我有一个log4j2json配置文件,似乎无法在Appender部分中放置多个“file”Appender。我要做的是用我的日志语句记录两个文件:一个文件用于信息级别和更高级别,而另一个文件用于调试级别

`"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"}]
        }
    }
}
}

我希望日志目录中有两个文件。一个用于信息级日志,另一个用于调试级日志。我希望stdout将信息级日志记录到控制台

相反,我看到编辑器不接受json中定义的两个文件追加器,并抱怨存在重复的密钥。另一个问题是,只有一个文件附加器被识别(第一个…)

如何配置单个记录器将信息级日志写入控制台、文件以及存储调试级消息的第二个文件。

您可以在
文件中使用appender的数组(
[]
appender定义:

{
  "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"
          }
        ]
      }
    }
  }
}
您可以在
文件中使用appender定义的数组(
[]
):

{
  "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"
          }
        ]
      }
    }
  }
}

检查下面的答案。它可能会对您有所帮助。我建议您在配置中添加“状态”:“调试”,这样您就可以看到Log4j正在做什么。您解决了这个问题吗?检查以下答案。这可能会对您有所帮助。我建议您在配置中添加“状态”:“调试”,这样您就可以看到Log4j正在做什么。您解决了这个问题吗?