問題タブ [logback-classic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - Spring Boot Loading Logging クラスを異なる順序で
これに精通している方がどれだけいるかはわかりませんが、2 つの異なる環境で同じアプリケーションを実行すると、Spring Boot アプリがログの依存関係を異なる順序で読み込むようになります。logback-classic-1.1.7 と slfj4j-log4j12-1.7.13 で実行しています。
これで、logback に slfj が埋め込まれていることがわかりました (少なくとも、今はそうしています)。通常、複数のバインディングの警告が表示され、処理が続行されます。アプリが起動します。
slf4j が複数のバインディングを見つけると、ランダムに 1 つを選択することがあると読んだことがあります。他の不要な依存関係を削除したので、問題は解決しました。同じLinuxバージョンの別のサーバーで実行することにより、同じアプリが間違ったロガーをロードする理由にもっと興味があります。別の環境で実行している場合、起動しようとすると次のようになります。
この環境では、競合する 2 つのロガーが逆の順序で読み込まれ、アプリの起動に失敗します。Spring の依存関係のロードの動作と、異なる環境で異なる順序でそれらをロードする理由について詳しく知っている人はいますか? これにより、このエラーはしばらく気付かれませんでした。両方の環境の Linux バージョンは同じです。
前もって感謝します
java - Spring Boot と Tomcat でログバックが機能しない
Tomcat サーバーで Spring Boot アプリケーションをセットアップしようとしていますが、問題が発生しています。次のエラーが発生し続けます。
これが私のプログラムのメインクラスです:
私が気づいたのは、SpringBootServletInitializer クラスの次の行の後に、前に述べたエラーが発生しているように見えることです。
編集:これが私のPOMファイルです。
spring-boot - ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
boot-starter-parent バージョン: 2.0.4.RELEASE を使用して、Spring アプリを spring-boot に変換しています。mvn install を使用してビルドすると問題なく動作しますが、 command: を使用してアプリを実行しようとすると、次のmvn spring-boot:run -Dspring.profiles.active=dev
例外が発生します: ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
ここに私のpomの依存関係があります:
この質問のアドバイスに従い、新しいバージョンと古いバージョンの logback (コアとクラシックの両方) の依存関係を使用し、「slf4j-log4j12」と「slf4j-simple」を追加しようとしましたが、それでも例外が発生します。スタック トレースは次のとおりです。
java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder at org.springframework.boot.logging.logback.LogbackLoggingSystem.getLoggerContext (LogbackLoggingSystem.java:285) at org.springframework.boot.logging.logback.LogbackLoggingSystem.beforeInitialize (LogbackLoggingSystem) .java:102) org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationStartingEvent (LoggingApplicationListener.java:191) で org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent (LoggingApplicationListener.java:170) で org. org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent (SimpleApplicationEventMulticaster.java:139) org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent (SimpleApplicationEventMulticaster.java:122) で org.springframework.boot.context.event.EventPublishingRunListener.starting (EventPublishingRunListener.java:68) で org.springframework.boot.SpringApplicationRunListeners .starting (SpringApplicationRunListeners.java:48) at org.springframework.boot.SpringApplication.run (SpringApplication.java:316) at org.springframework.boot.SpringApplication.run (SpringApplication.java:1258) at org.springframework.boot. SpringApplication.run (SpringApplication.java:1246) at com.hbo.esp.MyApplication.main (MyApplication.java:17) at sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド)org.springframework.boot.context.event.EventPublishingRunListener.starting (EventPublishingRunListener.java:68) の multicastEvent (SimpleApplicationEventMulticaster.java:122) org.springframework.boot.SpringApplicationRunListeners.starting (SpringApplicationRunListeners.java:48) の org.springframework .boot.SpringApplication.run (SpringApplication.java:316) at org.springframework.boot.SpringApplication.run (SpringApplication.java:1258) at org.springframework.boot.SpringApplication.run (SpringApplication.java:1246) at com. hbo.esp.MyApplication.main (MyApplication.java:17) at sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド)org.springframework.boot.context.event.EventPublishingRunListener.starting (EventPublishingRunListener.java:68) の multicastEvent (SimpleApplicationEventMulticaster.java:122) org.springframework.boot.SpringApplicationRunListeners.starting (SpringApplicationRunListeners.java:48) の org.springframework .boot.SpringApplication.run (SpringApplication.java:316) at org.springframework.boot.SpringApplication.run (SpringApplication.java:1258) at org.springframework.boot.SpringApplication.run (SpringApplication.java:1246) at com. hbo.esp.MyApplication.main (MyApplication.java:17) at sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド)springframework.boot.SpringApplicationRunListeners.starting (SpringApplicationRunListeners.java:48) at org.springframework.boot.SpringApplication.run (SpringApplication.java:316) at org.springframework.boot.SpringApplication.run (SpringApplication.java:1258) at org .springframework.boot.SpringApplication.run (SpringApplication.java:1246) at com.hbo.esp.MyApplication.main (MyApplication.java:17) at sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド)springframework.boot.SpringApplicationRunListeners.starting (SpringApplicationRunListeners.java:48) at org.springframework.boot.SpringApplication.run (SpringApplication.java:316) at org.springframework.boot.SpringApplication.run (SpringApplication.java:1258) at org .springframework.boot.SpringApplication.run (SpringApplication.java:1246) at com.hbo.esp.MyApplication.main (MyApplication.java:17) at sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド)hbo.esp.MyApplication.main (MyApplication.java:17) at sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド)hbo.esp.MyApplication.main (MyApplication.java:17) at sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド)