Domanda

Ho effettuato alcune ricerche alla ricerca di informazioni su come effettuare la registrazione con Spring Framework.

Al momento abbiamo un'applicazione che non ha accesso al suo interno, tranne per le istruzioni system.out (pessimo modo).

Quello che vorrei fare è aggiungere la registrazione, ma voglio anche essere in grado di controllare la registrazione in fase di esecuzione, ad esempio JMX.

Stiamo usando Rad 7.0 / WebSphere 6.1

Sono interessante scoprire qual è il / i modo / i migliore / i per raggiungere questo obiettivo (immagino che ce ne possano essere diversi).

Aggiornamento: considerazioni sul seguente Spring AOP Logging Buon ideale o no. Questo è in riferimento a una domanda pubblicata qui sulla registrazione: Registrazione condizionale . Questo migliora le cose o semplicemente rende più difficile l'area della registrazione?

È stato utile?

Soluzione

Vorrei usare Commons Logging e Log4j . Questa non è una vera domanda per Spring, tuttavia la fonte Springframework utilizza anche Commons Logging. Se si crea un logger e un appender log4j in log4j, è possibile abilitare la registrazione anche all'interno delle classi Springframework. Esistono alcuni modi per controllare la registrazione in fase di esecuzione. La sandbox Log4j ha un JSP, che puoi inserire nella tua webapp, che ti permetterà di controllare i livelli di log di tutti i logger all'interno della tua applicazione.

Altri suggerimenti

Vedi le altre risposte per log4j. Ma considera anche JAMon per monitoraggio delle applicazioni . È molto facile aggiungere un'applicazione a molla, ad esempio:

    <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>

ecco un file di esempio per la configurazione di log4j per una console e un registratore di file. se questo file si trova sul classpath verrà letto automaticamente da log4j. Tuttavia, poiché ti trovi all'interno di un server di app, potrebbe esserci un altro modo preferito di configurare la registrazione. Ricordo che all'interno di JBoss c'era un file xml che dovevi modificare. Non sono sicuro della configurazione di websphere. Ma se vuoi configurarlo per una semplice app di prova, questo ti farà andare avanti.

# 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top