Question

J'ai effectué des recherches pour rechercher des informations sur la procédure de journalisation avec Spring Framework.

Nous avons actuellement une application qui ne se connecte pas, à l'exception des instructions system.out (très mauvais moyen).

Ce que je voudrais faire, c'est ajouter une journalisation, mais je veux aussi pouvoir contrôler la journalisation au moment de l'exécution, avec par exemple JMX.

Nous utilisons Rad 7.0 / WebSphere 6.1

Je suis curieux de savoir quel est le meilleur moyen d’accomplir cela (j’imagine qu’il peut y en avoir plusieurs).

Mise à jour: Réflexions sur les Journalisation des AOP de printemps : Bon idéal ou pas. Ceci est en référence à une question publiée ici sur la journalisation: Journalisation conditionnelle . Cela améliore-t-il les choses ou rend-il simplement la tâche plus difficile dans le domaine de l'exploitation forestière?

Était-ce utile?

La solution

J'utiliserais la journalisation commune et Log4j . Ce n'est pas vraiment une question pour Spring, mais la source Springframework utilise également Commons Logging. Si vous créez un logger et un appender log4j dans log4j, vous pouvez également activer la journalisation dans les classes Springframework. Il existe plusieurs façons de contrôler la journalisation au moment de l'exécution. Le sandbox Log4j contient un fichier JSP, que vous pouvez déposer dans votre application Web, vous permettant de contrôler les niveaux de journalisation de tous les enregistreurs de votre application.

Autres conseils

Voir les autres réponses pour log4j. Mais considérez également la JAMon pour la surveillance des applications . Il est très facile d’ajouter à une application printanière, par exemple:

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

Voici un exemple de fichier permettant de configurer log4j pour une console et un enregistreur de fichiers. si ce fichier est sur le chemin de classe, il sera lu automatiquement par log4j. Toutefois, puisque vous vous trouvez dans un serveur d'applications, il peut exister un autre moyen préféré de configuration de la journalisation. Je me souviens que dans JBoss, vous deviez modifier un fichier XML. Pas sûr de la configuration de Websphere. Mais si vous souhaitez le configurer pour une application de test simple, cela vous permettra de continuer.

# 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top