带有 HTTP 附加程序的 Log4J 故障转移附加程序

Log4J failover appender with HTTP appender

所以我将 failoverappender 与主要的 HTTP appender 一起使用。 FailoverAppender 文档状态:

FailoverAppender 将捕获 Appender 中的异常,然后将事件路由到不同的 appender。

我找不到任何文档,但是当 HTTPappender 实际抛出异常时。所以我想知道的是,如果我的 HTTP post 请求 returns 4XX 或 5XX 代码,这实际上会引发 log4j 异常并激活故障转移吗?

是的,如果返回 4xx5xx 状态代码,将使用故障转移附加程序。

HttpAppender 抛出哪些异常取决于 HttpManager in use. Right now the HttpURLConnectionManager is hardcoded into Log4j, which relies upon your system's implementation of HttpURLConnection 实现的实现。

A 4xx5xx 状态码是 OpenJDK 中的标准 HttpURLConnection 抛出异常的原因之一(参见 source code)。