ログに使用するファイルを決定するためにデータベースの値を確認する必要がある setFile() メソッドの log4j DailyRollingFileAppender クラスがあります。
DailyRollingFileAppender class
public void setFileName()
{
isLoginEnabled = authenticationManager.checkLoginLogging();
}
ここで、「authenticationManager」は、Spring 依存性注入機能を使用してデータベース呼び出しを行うために使用されるクラスのオブジェクトです。
spring-beans.xml
<bean id="dailyRollingFileAppender" class="com.common.util.DailyRollingFileAppender">
<property name="authenticationManager">
<ref bean="authenticationManager"/>
</property>
</bean>
<bean id="authenticationManager" class="com.security.impl.AuthenticationManagerImpl">
<property name="userService">
<ref bean="userService"/>
</property>
</bean>
ここで、アプリケーションを開始すると、log4j が最初に開始され、spring-beans がまだ呼び出されていないため、メソッド setFileName() で NullPointerException がスローされます。「authenticationManager.checkLoginLogging();」を呼び出す方法はありますか Log4jがロードされたときにデータベース値を取得できるように、DailyFileAppenderクラスから?