Frage

Ich habe einige Recherchen durchgeführt, um Informationen über die Suche, wie man mit dem Spring Framework Protokollierung zu tun.

Wir haben derzeit eine Anwendung, die keine Protokollierung darin mit Ausnahme system.out Aussagen hat (sehr schlecht).

Was würde ich tun, ist die Protokollierung hinzufügen, sondern will auch die Protokollierung zur Laufzeit steuern zu können, mit etwa JMX.

Wir sind mit Rad 7.0 / WebSphere 6.1

Ich bin interessant, herauszufinden, was der beste Weg ist, (e) dies zu tun (ich meine, es kann mehrere sein).

Update: Gedanken über die folgenden Frühling AOP Logging gut ideal oder nicht. Dies ist in Bezug auf eine Frage hier gepostet Protokollierung: Conditional Logging . Enthält diese Dinge verbessern oder nur erschwert es im Bereich der Protokollierung?

War es hilfreich?

Lösung

würde ich Commons Logging und log4j . Dies ist nicht wirklich eine Frage für den Frühling, aber die spring Quelle tut verwendet Commons Logging als auch. Wenn Sie einen log4j Logger und appender in log4j erstellen, können Sie auch die Protokollierung in den spring Klassen ermöglichen. Es gibt ein paar Möglichkeiten, um die Protokollierung zur Laufzeit zu steuern. Die Log4j Sandbox eine JSP hat, dass Sie in Ihrem Webapp fallen können, dass Sie die Protokollebenen aller der Logger in Ihrer Anwendung.

steuern können

Andere Tipps

Die anderen Antworten für log4j. Aber bedenken Sie auch JAMon für Anwendungsüberwachung . Es ist sehr leicht zu einer Feder Anwendung hinzuzufügen, z.

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

Hier ist eine Beispieldatei log4j für eine Konsole und Datei-Logger für die Konfiguration. wenn diese Datei auf dem Classpath ist, wird es von log4j automatisch erhalten lesen. Da Sie jedoch innerhalb einer App-Server sind, dann kann es eine andere bevorzugte Art und Weise Protokollierung konfigurieren. Ich erinnere mich, innerhalb JBoss gibt es eine XML-Datei, die Sie ändern mußten. Nicht sicher websphere Konfiguration. Aber wenn Sie es für einen einfachen Test-App konfigurieren möchten, wird dies erhalten Sie gehen.

# 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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top