Pergunta

Eu tenho feito algumas buscas à procura de informações sobre como fazer o registo com o Spring Framework.

Atualmente, temos um aplicativo que não tem registro de nele exceto para instruções System.out (muito mau caminho).

O que eu gostaria de fazer, é o log de add, mas também quero ser capaz de controlar o registro em tempo de execução, com digamos JMX.

Estamos usando Rad 7.0 / WebSphere 6.1

Eu sou interessante para descobrir o que é a melhor maneira (s) para alcançar este objetivo (eu acho que pode haver vários).

Atualização: Reflexões sobre o seguinte Spring AOP Logging boa ideal ou não. Esta é em referência a uma pergunta postada aqui o registo: Conditional Logging . Será que isso melhorar as coisas ou apenas torna mais difícil na área de exploração madeireira?

Foi útil?

Solução

Gostaria de usar Commons Logging e log4j . Isto não é realmente uma pergunta para a Primavera, no entanto a fonte SpringFramework faz usa Commons Logging também. Se você criar um logger log4j e appender em log4j, você pode habilitar o registro dentro das classes SpringFramework também. Existem algumas maneiras de controlar o registo em tempo de execução. O sandbox Log4j tem uma JSP, que você pode cair em seu webapp, que lhe permitirá controlar os níveis de registo de todos os madeireiros dentro de sua aplicação.

Outras dicas

Veja as outras respostas para log4j. Mas também considerar JAMon para Aplicação de monitoramento . É muito fácil de adicionar a um aplicativo de primavera, por exemplo:.

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

aqui está um exemplo de arquivo para configurar log4j para um console e arquivo logger. Se este arquivo está no classpath ele vai ficar lido por log4j automaticamente. No entanto, uma vez que você está dentro de um servidor de aplicativo, pode haver uma outra forma preferida de configuração do log. Lembro-me dentro JBoss havia um arquivo xml que você teve que modificar. Não tenho certeza sobre a configuração do WebSphere. Mas se você quiser configurá-lo para um aplicativo de teste simples, isso vai te indo.

# 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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top