2

Spring Framework でロギングを行う方法に関する情報を探して、いくつかの検索を行いました。

現在、system.out ステートメント (非常に悪い方法) を除いて、ログを記録していないアプリケーションがあります。

私がやりたいことは、ログを追加することですが、実行時にログを制御できるようにしたいと考えています。たとえば、JMX を使用します。

Rad 7.0 / WebSphere 6.1 を使用しています

これを達成するための最良の方法は何かを見つけるのは興味深いことです(いくつかあると思います)。

更新: 次のSpring AOP Loggingに関する考え良い理想かどうか。これは、ロギングに関するここに投稿された質問: Conditional Loggingを参照したものです。これはロギングの分野で物事を改善しますか、それとも単に難しくしますか?

4

3 に答える 3

5

CommonsLoggingLog4jを使用します。これはSpringにとって実際には問題ではありませんが、SpringframeworkソースはCommonsLoggingも使用します。log4jにlog4jロガーとアペンダーを作成すると、Springframeworkクラス内でもロギングを有効にできます。実行時にロギングを制御する方法はいくつかあります。Log4jサンドボックスにはJSPがあり、Webアプリにドロップして、アプリケーション内のすべてのロガーのログレベルを制御できます。

于 2008-09-23T02:26:37.557 に答える
2

log4jの他の回答を参照してください。ただし、アプリケーションの監視にはJAMonも検討してください。Springアプリケーションに追加するのは非常に簡単です。例:

    <bean id="performanceMonitor" class="org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor">
        <property name="useDynamicLogger" value="false"/>
        <property name="trackAllInvocations" value="true"/>
    </bean>

   <bean id="txRequired" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
            <property name="transactionManager" ref="transactionManager"/>
            <property name="transactionAttributes" >
                <props> <prop key="*">PROPAGATION_REQUIRED</prop> </props>
            </property>
        <property name="preInterceptors">
           <list>
              <ref bean="performanceMonitor"/>      
           </list>
        </property>
   </bean>
于 2008-09-23T08:13:05.680 に答える
1

これは、コンソールとファイルロガーのlog4jを構成するためのサンプルファイルです。このファイルがクラスパス上にある場合、log4jによって自動的に読み取られます。ただし、アプリサーバー内にいるため、ロギングを構成する別の好ましい方法がある場合があります。JBoss内に、変更しなければならないxmlファイルがあったことを覚えています。Websphereの構成についてはよくわかりません。ただし、単純なテストアプリ用に構成する場合は、これで問題ありません。

# Set root logger level to WARN and appenders to A1 & F1.
log4j.rootLogger=WARN, A1, F1

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# logging to console only INFO
log4j.appender.A1.Threshold=INFO
# F1 is a file appender
log4j.appender.F1=org.apache.log4j.RollingFileAppender

# Tell Spring to be quiet
log4j.logger.org.springframework=WARN
# debug logging for my classes
log4j.logger.com.yourcorp=DEBUG
log4j.logger.org.hibernate=INFO

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r : %d{HH:mm:ss,SSS} [%t] %-5p %c{1} %x - %m%n

log4j.appender.F1.File=./log/mylogfile.log
log4j.appender.F1.MaxFileSize=10MB
log4j.appender.F1.MaxBackupIndex=5
log4j.appender.F1.layout=org.apache.log4j.PatternLayout
log4j.appender.F1.layout.ConversionPattern=%-4r : %d{HH:mm:ss,SSS} [%t] %-5p %c{1} %x - %m%n
于 2008-09-23T04:14:40.747 に答える