私は同様にLogManager.getLogger stalls Application for ~10-30 Seconds when using JDK8:で説明されている奇妙な状況を経験しましたが、解決策は提案されていません。LogManager.getLoggerとgetContext()でLog4jの遅い初期化
事が
final Logger logger = LogManager.getLogger(MyClass.class.getSimpleName());
通じロガーの初期化している場合のIFのWiFiが無効になっているか、私は私のiPhoneを通じてテザリングしていた場合のいずれか(最新のMacBook Proの15" 2017年の)ほとんど7Sのための私のアプリケーションをストールということです。 しかし、私は自分のWiFi(テザリング無し)を通してインターネットに接続していれば、log4jの初期化は1,5秒以内に行われます。 これは非常に奇妙な動作です。数秒後にインターネットとタイムアウトが発生しますが、もう一度:なぜ私がテザリングしてインターネットにアクセスするときと同じ動作ですか?
さらにデバッグするとき、私はこの方法では、そう長く取っていることがわかった:
public static LoggerContext getContext(final boolean currentContext) {
// TODO: would it be a terrible idea to try and find the caller ClassLoader here?
try {
return factory.getContext(FQCN, null, null, currentContext, null, null);
} catch (final IllegalStateException ex) {
LOGGER.warn(ex.getMessage() + " Using SimpleLogger");
return new SimpleLoggerContextFactory().getContext(FQCN, null, null, currentContext, null, null);
}
}
特にこの:
factory.getContext(FQCN, null, null, currentContext, null, null);
誰もがこの問題が発生し、どのように私はこの問題を解決することができる理由の手掛かりを持っていますか?
これは質問への答えを提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-代わりに)。 - [レビューから](/レビュー/低品質の投稿/ 17438117) – Olly