Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / log4j+Spring- сохранение инфы от различных проектов в разные файлы / 23 сообщений из 23, страница 1 из 1
12.08.2014, 13:02
    #38718061
alex2808
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
Всем привет.
Да столкнулся с проблемой.
На одном сервере GlassFish стоит несколько проектов.
Не могу разделить вывод логов каждого проекта в отдельный файл.

Почему то гонит весь вывод по всем проектам в файл последнего отдеплоенного проекта.

Для примера:
1-й проект:

# LOG4J configuration
log4j.rootLogger=INFO, AppenderPayR, PayRLog

log4j.appender.AppenderPayR=org.apache.log4j.ConsoleAppender
log4j.appender.AppenderPayR.layout=org.apache.log4j.PatternLayout
log4j.appender.AppenderPayR.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.AppenderPayR.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n

log4j.appender.PayRLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.PayRLog.File=../logs/payr.log
log4j.appender.PayRLog.DatePattern='.'yyyy-MM-dd
log4j.appender.PayRLog.layout=org.apache.log4j.PatternLayout
log4j.appender.PayRLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p] %c{1}:%L - %m%n

В web.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
 <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>my.web.payr</param-value>
    </context-param>
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>/WEB-INF/properties/log4j.properties</param-value>
    </context-param>



2-й проект:

# LOG4J configuration
log4j.rootLogger=INFO, Appender1, RollingAppender

log4j.appender.Appender1=org.apache.log4j.ConsoleAppender
log4j.appender.Appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.appender.RollingAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingAppender.File=../logs/rtask.log
log4j.appender.RollingAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.RollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

В web.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
  <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>my.web.rtask</param-value>
    </context-param>    
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>/WEB-INF/properties/log4j.properties</param-value>
    </context-param>




Что нужно поменять, чтобы инфа по каждому из приложений попадала только в свои файлы payr.log и rtask.log?
...
Рейтинг: 0 / 0
12.08.2014, 13:48
    #38718147
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
Лог - вещь глобальная, его, грубо говоря, сервер приложения (web-сервер) делает.
Поэтому расписываете один log4j.xml (.properties) для всех проектов, которые грузит ваш сервер приложений.
Разделение приёмников делаете по категориям, которые вы, как автор проектов обязаны знать.
...
Рейтинг: 0 / 0
12.08.2014, 14:17
    #38718218
alex2808
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
Basil A. SidorovРазделение приёмников делаете по категориям, которые вы, как автор проектов обязаны знать.
Категориями могут выступать наименования root-пакетов проектов, например my.web.rtask и my.web.payr как здесь в примере?
...
Рейтинг: 0 / 0
12.08.2014, 14:44
    #38718270
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
alex2808Категориями могут выступать наименования root-пакетов проектов, например my.web.rtask и my.web.payr как здесь в примере?Если имена проектов не связаны с именами пакетов, то не могут - категории назначают по полному имени класса.
Но поскольку ситуация "есть несколько приложений на базе одного war" - вряд ли исключительная, то разработчики СП могут её предусмотреть.
В этом случае в имя файла надо просто включить какую-то (предопределённую) переменную, которая будет раскрываться в разные значения для разных приложений.
...
Рейтинг: 0 / 0
12.08.2014, 14:48
    #38718275
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
Basil A. Sidorovпеременнуюсвойство.
При выборе свойства надо учитывать, что сервер приложений должен сначала инициализировать значение свойства и только потом - log4j, а не наоборот.
...
Рейтинг: 0 / 0
12.08.2014, 14:52
    #38718283
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
Basil A. SidorovЕсли имена проектов не связаны с именами пакетов, то не могут - категории назначают по полному имени класса.
Можно завести свой логгер так чтобы к имени класса добавлялось имя контектса.
В logback, вон вроде что-то уже готовое есть на эту тему
http://logback.qos.ch/manual/loggingSeparation.html
...
Рейтинг: 0 / 0
12.08.2014, 16:10
    #38718465
alex2808
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
Basil A. Sidorovalex2808Категориями могут выступать наименования root-пакетов проектов, например my.web.rtask и my.web.payr как здесь в примере?Если имена проектов не связаны с именами пакетов, то не могут - категории назначают по полному имени класса.
Но поскольку ситуация "есть несколько приложений на базе одного war" - вряд ли исключительная, то разработчики СП могут её предусмотреть.

Какая-то мудренная логика, не могу понять, чес слово.
У меня есть проект, называется rtask например.
Корневой package у него my.web.rtask, внутри есть еще подпакеты, но общий префикс у всех одинаков my.web.rtask.
При развертывании отдельный - rtask.war


Есть второй проект, называется payr например.
Корневой package у него my.web.payr , внутри есть еще подпакеты, но общий префикс у всех одинаков my.web.payr.
При развертывании отдельный - payr .war

Нужно сделать так, чтобы вся инфа уровня INFO по проекту payr писалась в payr.log,
а по проекту rtask - в rtask.log.

Сейчас у меня в гласифише по умолчанию пишется в server.log.

Попробовал переделать вышеуказанные примеры на
Код: xml
1.
2.
log4j.rootLogger=INFO, Appender1
log4j.looger.my.web.rtask = INFO, RollingAppender


Не сработало.
Пишет только в server.log.
...
Рейтинг: 0 / 0
12.08.2014, 16:19
    #38718490
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
alex2808,
off
лично меня интересует запись в один лог, но с префиксами - корневое имя пакета. Т.к. пространства имен никогда не пересекаются.
Так работает7
...
Рейтинг: 0 / 0
12.08.2014, 16:20
    #38718494
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
Petro123Так работает7
вместо 7 вопр.знак - ?))
...
Рейтинг: 0 / 0
12.08.2014, 16:24
    #38718503
alex2808
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
Petro123,
Т.е. предлагаете не мудрить разделитель по файлам, а просто поставить опцию вывода полного имя класса %С,
и потом использовать просто поиск по имени пакета событий?
...
Рейтинг: 0 / 0
12.08.2014, 16:25
    #38718509
alex2808
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
alex2808Petro123,
Т.е. предлагаете не мудрить разделитель по файлам, а просто поставить опцию вывода полного имя класса %С,
и потом использовать просто поиск по имени пакета событий?
например ключом будет my.web.rtask.MyClass?
...
Рейтинг: 0 / 0
12.08.2014, 16:26
    #38718510
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
alex2808,
да. Один файл удобнее. Кроме того есть сторонние библиотеки, которые тебе не подвластны в кавычках
...
Рейтинг: 0 / 0
12.08.2014, 16:32
    #38718518
alex2808
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
Petro123alex2808,
да. Один файл удобнее. Кроме того есть сторонние библиотеки, которые тебе не подвластны в кавычках
Удобство сомнительное, т.к. на одном серваке проектов 10-15, и все туда пишут.
Инфу искать потом трудно.
...
Рейтинг: 0 / 0
12.08.2014, 16:33
    #38718521
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
alex2808например ключом будет my.web.rtask.MyClass?
я фиг знает этот логировщик...
В градле Android Studio есть
Код: java
1.
applicationId "ru.ффффф.android.мой_пакет"


это всегда выводится после миллисекунд в логе
...
Рейтинг: 0 / 0
12.08.2014, 16:34
    #38718523
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
alex2808Удобство сомнительное, т.к. на одном серваке проектов 10-15, и все туда пишут.
Инфу искать потом трудно.
может быть - пошукай в справке рыбы
...
Рейтинг: 0 / 0
12.08.2014, 16:50
    #38718557
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
да, ещё не забудь что в рыбе - домены. Может конфиг надо в разные домены......
Удачи!
...
Рейтинг: 0 / 0
12.08.2014, 19:31
    #38718734
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
alex2808
Код: xml
1.
2.
log4j.rootLogger=INFO, Appender1
log4j.looger.my.web.rtask = INFO, RollingAppender


Не сработало.
Пишет только в server.log.Пишется в корневые получатели и дублируется в индивидуальные.
Или не указываем корневые получатели и отключаем, где надо, наследование и тогда в этой категории индивидуально настраивается всё:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  log4j.rootLogger=DEBUG, stdout, proxy
  log4j.logger.org.apache=WARN
  # Выборочно отключаем наследование настроек
  log4j.additivity.org.apache.catalina.core=false
  log4j.logger.org.apache.catalina.core=INFO, stdout, file1
  log4j.additivity.org.apache.catalina.startup=false
  log4j.logger.org.apache.catalina.startup=INFO, stdout, file2
  log4j.additivity.org.apache.catalina.core.ContainerBase=false
Определения получателей (stdout, file1 и file2) - не приводятся.

XML (только как пример синтаксиса):
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  <logger name="org.apache.catalina.core.ContainerBase"
          additivity="false">
          level value="info" />
    <appender-ref ref="stdout" />
    <appender-ref ref="file2" />
  </logger>

  <root>
    <level value="info" />
    <appender-ref ref="stdout" />
    <appender-ref ref="file1" />
  </root>



P.S. Включение-выключение наследования надо проверять: мне требовалось переопределить единственную категорию, поэтому я не проверял, что будет наследоваться дальше - корневые настройки или переопределённые.
...
Рейтинг: 0 / 0
12.08.2014, 19:34
    #38718737
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
Basil A. SidorovИли не указываем корневые получатели и или отключаем, где надо, наследование
...
Рейтинг: 0 / 0
12.08.2014, 19:55
    #38718753
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
Если я всё правильно понял и помню, то должно быть так:
log4j.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">

<log4j:configuration debug="false" reset="false">

  <appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Threshold"
           value="info" />
    <layout class="org.apache.log4j.EnhancedPatternLayout">
      <param name="ConversionPattern"
             value="|%d{dd-MMM-yy HH:mm:ss}|%-5p|%m%n%throwable{short}" />
    </layout>
  </appender>

  <appender name="file1Appender" class="org.apache.log4j.FileAppender">
    <param name="File" value="${user.dir}/.logs/file1.log" />
    <layout class="org.apache.log4j.EnhancedPatternLayout">
      <param name="ConversionPattern" value="|%d{yyyy-MM-dd HH:mm:ss.SSS Z}|%-5p|%c|%t|%m%n" />
    </layout>
  </appender>

  <appender name="file2Appender" class="org.apache.log4j.FileAppender">
    <param name="File" value="${user.dir}/.logs/file2.log" />
    <layout class="org.apache.log4j.EnhancedPatternLayout">
      <param name="ConversionPattern" value="|%d{yyyy-MM-dd HH:mm:ss.SSS Z}|%-5p|%c|%t|%m%n" />
    </layout>
  </appender>

  <appender name="stdout" class="org.apache.log4j.AsyncAppender">
    <appender-ref ref="console" />
  </appender>

  <appender name="file1" class="org.apache.log4j.AsyncAppender">
    <appender-ref ref="file1Appender" />
  </appender>

  <appender name="file2" class="org.apache.log4j.AsyncAppender">
    <appender-ref ref="file2Appender" />
  </appender>

  <logger name="a.b">
    <level value="info" />
    <appender-ref ref="file1" />
  </logger>

  <logger name="c.d">
    <level value="info" />
    <appender-ref ref="file2" />
  </logger>

  <root>
    <level value="info" />
    <appender-ref ref="stdout" />
  </root>

</log4j:configuration>


XML - чтобы задействовать AsyncAppender.
...
Рейтинг: 0 / 0
12.08.2014, 22:30
    #38718823
alex2808
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
Basil A. SidorovЕсли я всё правильно понял и помню, то должно быть так:
log4j.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
  <logger name="a.b">
    <level value="info" />
    <appender-ref ref="file1" />
  </logger>

  <logger name="c.d">
    <level value="info" />
    <appender-ref ref="file2" />
  </logger>




"a.b" > и "c.d" - это корневой package приложения?
Например как в моем случае my.web.rtask?
...
Рейтинг: 0 / 0
12.08.2014, 22:39
    #38718832
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
alex2808 "a.b" > и "c.d" - это корневой package приложения?Минимально различающаяся часть пакетов.
Это может быть и "com"/"org" и "com.app1"/"com.app2" и "com.company.app1"/"com.company.app2".

P.S. "Роспись иерархии" - дело сугубо индивидуальное, т.к. цели и требования у всех разные.
...
Рейтинг: 0 / 0
15.08.2014, 18:17
    #38721516
alex2808
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
Basil A. SidorovЕсли я всё правильно понял и помню, то должно быть так:
log4j.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
  <logger name="a.b">
    <level value="info" />
    <appender-ref ref="file1" />
  </logger>

  <logger name="c.d">
    <level value="info" />
    <appender-ref ref="file2" />
  </logger>




"a.b" > и "c.d" - это корневой package приложения?
Например как в моем случае my.web.rtask?
...
Рейтинг: 0 / 0
15.08.2014, 21:51
    #38721612
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j+Spring- сохранение инфы от различных проектов в разные файлы
Судя по
Код: xml
1.
2.
3.
 <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>my.web.payr</param-value>

да, но только если имя приложения совпадает с именем пакета.
Неужели вам неизвестна иерархия классов вашего приложения?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / log4j+Spring- сохранение инфы от различных проектов в разные файлы / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]