Предпочтительный способ ведения журнала при работе с пружинным каркасом

StackOverflow https://stackoverflow.com/questions/118724

  •  02-07-2019
  •  | 
  •  

Вопрос

Я выполнил несколько поисковых запросов в поисках информации о том, как вести ведение журнала с помощью Spring Framework.

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

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

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

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

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

Это было полезно?

Решение

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

Другие советы

Смотрите другие ответы для log4j.Но также учитывайте ХАМон для мониторинг приложений.Его очень легко добавить в приложение spring, например:

    <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