2008-09-23 2 views
2

Я проделал ряд поисков, которые ищут информацию о том, как вести журнал с помощью Spring Framework.Предпочтительный способ ведения журнала в работе SpringFrame

В настоящее время у нас есть приложение, в котором нет входа в систему, кроме инструкций system.out (очень плохо).

Что я хотел бы сделать, это добавить ведение журнала, но также иметь возможность контролировать ведение журнала во время выполнения, скажем, JMX.

Мы используем Rad 7.0/WebSphere 6.1

Я интересно узнать, что это лучший способ (ы) для достижения этой цели (я полагаю, может быть несколько).

Обновление: Мысли о следующем Spring AOP Logging Хороший идеал или нет. Это относится к вопросу, опубликованному здесь при регистрации: Conditional Logging. Это улучшает ситуацию или просто усложняет процесс регистрации?

ответ

5

Я бы использовал Commons Logging и Log4j. Это не вопрос для Spring, однако источник Springframework также использует Commons Logging. Если вы создаете log4j logger и appender в log4j, вы также можете включить ведение журнала в классах Springframework. Существует несколько способов управления ведением журнала во время выполнения. В песочнице Log4j есть JSP, который вы можете переместить в свой webapp, что позволит вам контролировать уровни журналов всех регистраторов в вашем приложении.

1

вот пример файла для настройки 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 
+0

Я чувствую формат XML log4j конфигурационные файлы легче читать, писать и немного более выразительным – Vihung 2008-09-23 10:26:53

2

Посмотрите другие ответы для 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> 
+0

Хамон выглядит очень интересно. Mondo благодарит за указатель. – skaffman 2008-09-28 12:16:33

Смежные вопросы