문제

나는 Spring Framework로 로깅을 수행하는 방법에 대한 정보를 찾기 위해 몇 가지 검색을 수행했습니다.

현재 system.out 문을 제외하고는 로그인이 없는 애플리케이션이 있습니다(매우 나쁜 방식).

내가 하고 싶은 것은 로깅을 추가하는 것이지만 JMX를 사용하여 런타임에 로깅을 제어할 수도 있기를 원합니다.

우리는 Rad 7.0/WebSphere 6.1을 사용하고 있습니다.

이 작업을 수행하는 가장 좋은 방법이 무엇인지 알아보는 것이 흥미롭습니다(여러 가지가 있을 수 있다고 생각합니다).

업데이트:다음에 대한 생각 스프링 AOP 로깅 좋은 이상이든 아니든.이는 로깅에 대해 여기에 게시된 질문과 관련이 있습니다. 조건부 로깅.이로 인해 상황이 개선됩니까, 아니면 로깅 영역이 더 어려워 집니까?

도움이 되었습니까?

해결책

나는 사용할 것이다 공용 로깅 그리고 Log4j.이것은 실제로 Spring에 대한 질문은 아니지만 Springframework 소스는 Commons Logging도 사용합니다.log4j에서 log4j 로거와 어펜더를 생성하면 Springframework 클래스 내에서도 로깅을 활성화할 수 있습니다.런타임 시 로깅을 제어하는 ​​몇 가지 방법이 있습니다.Log4j 샌드박스에는 웹앱에 드롭할 수 있는 JSP가 있으며 이를 통해 애플리케이션 내 모든 로거의 로그 수준을 제어할 수 있습니다.

다른 팁

log4j에 대한 다른 답변을 참조하십시오.하지만 또한 고려 JAMon ~을 위한 애플리케이션 모니터링.스프링 애플리케이션에 추가하는 것은 매우 쉽습니다. 예:

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

다음은 콘솔 및 파일 로거에 대해 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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top