powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / log4j+Spring- сохранение инфы от различных проектов в разные файлы
23 сообщений из 23, страница 1 из 1
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718061
alex2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Да столкнулся с проблемой.
На одном сервере 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
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718147
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лог - вещь глобальная, его, грубо говоря, сервер приложения (web-сервер) делает.
Поэтому расписываете один log4j.xml (.properties) для всех проектов, которые грузит ваш сервер приложений.
Разделение приёмников делаете по категориям, которые вы, как автор проектов обязаны знать.
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718218
alex2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovРазделение приёмников делаете по категориям, которые вы, как автор проектов обязаны знать.
Категориями могут выступать наименования root-пакетов проектов, например my.web.rtask и my.web.payr как здесь в примере?
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718270
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex2808Категориями могут выступать наименования root-пакетов проектов, например my.web.rtask и my.web.payr как здесь в примере?Если имена проектов не связаны с именами пакетов, то не могут - категории назначают по полному имени класса.
Но поскольку ситуация "есть несколько приложений на базе одного war" - вряд ли исключительная, то разработчики СП могут её предусмотреть.
В этом случае в имя файла надо просто включить какую-то (предопределённую) переменную, которая будет раскрываться в разные значения для разных приложений.
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718275
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovпеременнуюсвойство.
При выборе свойства надо учитывать, что сервер приложений должен сначала инициализировать значение свойства и только потом - log4j, а не наоборот.
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718283
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЕсли имена проектов не связаны с именами пакетов, то не могут - категории назначают по полному имени класса.
Можно завести свой логгер так чтобы к имени класса добавлялось имя контектса.
В logback, вон вроде что-то уже готовое есть на эту тему
http://logback.qos.ch/manual/loggingSeparation.html
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718465
alex2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718490
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex2808,
off
лично меня интересует запись в один лог, но с префиксами - корневое имя пакета. Т.к. пространства имен никогда не пересекаются.
Так работает7
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718494
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Так работает7
вместо 7 вопр.знак - ?))
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718503
alex2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Т.е. предлагаете не мудрить разделитель по файлам, а просто поставить опцию вывода полного имя класса %С,
и потом использовать просто поиск по имени пакета событий?
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718509
alex2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex2808Petro123,
Т.е. предлагаете не мудрить разделитель по файлам, а просто поставить опцию вывода полного имя класса %С,
и потом использовать просто поиск по имени пакета событий?
например ключом будет my.web.rtask.MyClass?
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718510
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex2808,
да. Один файл удобнее. Кроме того есть сторонние библиотеки, которые тебе не подвластны в кавычках
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718518
alex2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123alex2808,
да. Один файл удобнее. Кроме того есть сторонние библиотеки, которые тебе не подвластны в кавычках
Удобство сомнительное, т.к. на одном серваке проектов 10-15, и все туда пишут.
Инфу искать потом трудно.
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718521
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex2808например ключом будет my.web.rtask.MyClass?
я фиг знает этот логировщик...
В градле Android Studio есть
Код: java
1.
applicationId "ru.ффффф.android.мой_пакет"


это всегда выводится после миллисекунд в логе
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718523
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex2808Удобство сомнительное, т.к. на одном серваке проектов 10-15, и все туда пишут.
Инфу искать потом трудно.
может быть - пошукай в справке рыбы
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718557
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, ещё не забудь что в рыбе - домены. Может конфиг надо в разные домены......
Удачи!
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718734
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718737
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovИли не указываем корневые получатели и или отключаем, где надо, наследование
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718753
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я всё правильно понял и помню, то должно быть так:
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
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718823
alex2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38718832
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex2808 "a.b" > и "c.d" - это корневой package приложения?Минимально различающаяся часть пакетов.
Это может быть и "com"/"org" и "com.app1"/"com.app2" и "com.company.app1"/"com.company.app2".

P.S. "Роспись иерархии" - дело сугубо индивидуальное, т.к. цели и требования у всех разные.
...
Рейтинг: 0 / 0
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38721516
alex2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
log4j+Spring- сохранение инфы от различных проектов в разные файлы
    #38721612
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по
Код: xml
1.
2.
3.
 <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>my.web.payr</param-value>

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


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