Главная ОШИБКА Невозможно найти appender "test" для логгера config "test"

Это мой конфиг log4j2 json

{
"Configuration": {
    "Appenders": {
      "Console": {
        "PatternLayout": {
      "pattern": "%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n"
    },
    "name": "Console",
    "target": "SYSTEM_OUT"
  },
  "RollingFile": {
    "name": "general",
    "fileName": "C:/logs/simulator-log.log",
    "filePattern": "C:/logs/simulator-log-%d{yyyy-MM-dd HH-mm-ss}.log",
    "PatternLayout": {
      "pattern": "%msg%n"

    },
    "Policies": {

      "OnStartupTriggeringPolicy": {
      }
    }
  },
  "File": {
    "PatternLayout": {
      "pattern":"%msg%n"
    },
    "name": "test",
    "fileName": "c:/logs/requests_received.log"
  },
  "File": {
    "PatternLayout": {
      "pattern":"%msg%n"
    },
    "name": "test1",
    "fileName": "c:/logs/response_sent.log"
  }
  },
  "Loggers": {
    "Root": {
      "AppenderRef": [
        {
          "ref": "Console"
        }
      ],
      "level": "trace"
    },
    "logger": [
      {
        "name": "test",
        "level": "trace",
        "additivity":"false",
        "AppenderRef": {
          "ref": "test"
        }
      },
      {
        "name": "test1",
        "level": "trace",
        "additivity":"false",
        "AppenderRef": {
          "ref": "test1"
        }
      },
      {
        "name": "general",
        "level": "trace",
        "additivity":"false",
        "AppenderRef": {
          "ref": "general"
        }
      }
    ]
  }
}

}

когда я использую один файл appenders, он работает нормально. когда я использую два файловых приложения, получающих упоминание об ошибке в title.cant, мы добавляем более одного файлового приложения. Я не хочу использовать приложение для работы с файлами.

Java-код для создания переменных логгера

private static final Logger requestsReceived = LogManager.getLogger("test");
private static final Logger responseSent = LogManager.getLogger("test1");
private static final Logger logger = LogManager.getLogger("general");

1 ответ

Решение

Попытайтесь определить ваших помощников, используя type атрибут, как показано ниже -

{
    "type": "File",
    "PatternLayout": {
        "pattern": "%msg%n"
    },
    "name": "test",
    "fileName": "c:/logs/requests_received.log"
},
{
    "type": "File",
    "PatternLayout": {
        "pattern": "%msg%n"
    },
    "name": "test1",
    "fileName": "c:/logs/response_sent.log"
}

Для этого вам нужно изменить все настройки приложения, используя type приписывать. Ваш полный файл конфигурации изменится, как показано ниже -

{
    "Configuration": {
        "Appenders": {
            "appender": [
                {
                    "type": "Console",
                    "PatternLayout": {
                        "pattern": "%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n"
                    },
                    "name": "Console",
                    "target": "SYSTEM_OUT"
                },
                {
                    "type": "RollingFile",
                    "name": "general",
                    "fileName": "C:/logs/simulator-log.log",
                    "filePattern": "C:/logs/simulator-log-%d{yyyy-MM-dd HH-mm-ss}.log",
                    "PatternLayout": {
                        "pattern": "%msg%n"
                    },
                    "Policies": {
                        "OnStartupTriggeringPolicy": {

                        }
                    }
                },
                {
                    "type": "File",
                    "PatternLayout": {
                        "pattern": "%msg%n"
                    },
                    "name": "test",
                    "fileName": "c:/logs/requests_received.log"
                },
                {
                    "type": "File",
                    "PatternLayout": {
                        "pattern": "%msg%n"
                    },
                    "name": "test1",
                    "fileName": "c:/logs/response_sent.log"
                }
            ]
        },
        "Loggers": {
            "Root": {
                "AppenderRef": [
                    {
                        "ref": "Console"
                    }
                ],
                "level": "trace"
            },
            "logger": [
                {
                    "name": "test",
                    "level": "trace",
                    "additivity": "false",
                    "AppenderRef": {
                        "ref": "test"
                    }
                },
                {
                    "name": "test1",
                    "level": "trace",
                    "additivity": "false",
                    "AppenderRef": {
                        "ref": "test1"
                    }
                },
                {
                    "name": "general",
                    "level": "trace",
                    "additivity": "false",
                    "AppenderRef": {
                        "ref": "general"
                    }
                }
            ]
        }
    }
}
Другие вопросы по тегам