Куда я должен поместить log4j.properties файл?

Я был вовлечен в разработку одной journy системы планировщика для Стокгольмского Общественного транспорта в Швеции. Это было основано на алгоритме Djikstra, но с завершением, прежде чем каждый узел посетили в системе. Сегодня, когда существуют надежные координаты, доступные для каждой остановки, я предполагаю*, алгоритм был бы выбором.

Данные о предстоящем трафике регулярно извлекались из нескольких баз данных и компилировались в большие таблицы, загруженные в память нашего кластера поискового сервера.

Один ключ к sucessfull algorith использовал функцию стоимости пути на основе времени прохождения и времени ожидания, умноженного на различные веса. Известный на шведском языке как “kresu" разовый эти взвешенные времена отражают то, что, например, одно minute’s время ожидания обычно эквивалентно в “inconvenience” двум минутам времени перемещения.

таблица

  • x1 KRESU Weight - Время прохождения
  • x2 - Идущий между остановками
  • x2 - Ожидающий на остановке во время поездки. Остановки под крышей, с магазинами, и т.д. могут получить немного более низкий вес, и переполненный размещает более высокое для настройки алгоритма.
  • вес в течение времени ожидания на первой остановке является функцией транспортной интенсивности и может быть между 0,5 к 3.

Структура данных

область А назвал область, где Вы путешествуете, может запуститься или закончиться. Автобусная остановка могла быть областью с двумя Остановками. Большая Станция с несколькими платформами могла быть одной областью с одной остановкой для каждой платформы. Данные: Имя, Остановки в области

Остановки массив со всеми автобусными остановками, вокзалами и станциями метро. Обратите внимание обычную необходимость в двух остановках, один для каждого направления, потому что оно занимает время, чтобы пересечь улицу или идти на другую платформу. Данные: Имя, Ссылки, Узлы

Ссылки А перечисляют с другими остановками, которых можно достигнуть путем обхода от этой остановки. Данные: Другая Остановка, Время для обхода к другой Остановке

Строки/Тур у Вас есть число на шине и месте назначения. Шина запускается на одной остановке и передает несколько остановок, продвигающихся месту назначения. Данные: Число, Имя, Место назначения

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

Поиск Массив с тем же размером как массив Узлов раньше хранил, как Вы добрались там и стоимость пути. Данные: обратный канал с Предыдущим Узлом (не набор, если Узел не посещают), Стоимость Пути (бесконечность для непосещаемого)

130
задан Matthew 28 October 2016 в 16:18
поделиться

5 ответов

Вы должны поместить его в корневой каталог, который соответствует вашему контексту выполнения.

Пример:

    MyProject
       src
           MyClass.java
           log4j.properties

Если вы начинаете выполнение из другого проекта, вам необходимо иметь этот файл в проекте используется для начала исполнения. Например, если другой проект содержит несколько тестов JUnit, он также должен иметь свой файл log4j.properties.


Я предлагаю использовать log4j.xml вместо log4j.properties. У вас есть больше возможностей, помощь в IDE и т. Д.

25
ответ дан 24 November 2019 в 00:23
поделиться

Файл должен находиться в каталоге WEB-INF / classes. Эта структура каталогов должна быть упакована в файл war.

9
ответ дан 24 November 2019 в 00:23
поделиться

Несколько технически правильных конкретных ответов уже даны, но в целом, это может быть любое место в runtime classpath, т.е. везде, где классы ищутся JVM.

Это может быть каталог /src в Eclipse или каталог WEB-INF/classes в вашем развернутом приложении, но лучше всего знать концепцию classpath и то, почему файл помещается в него, не стоит просто относиться к WEB-INF/classes как к "волшебному" каталогу.

5
ответ дан 24 November 2019 в 00:23
поделиться

Вы можете указать расположение файла конфигурации с помощью аргумента виртуальной машины -Dlog4j.configuration = "file: / C: /workspace3/local/log4j.properties"

26
ответ дан 24 November 2019 в 00:23
поделиться

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

  1. Поместите log4j.properties в WEB-INF\classes проекта, как упоминалось ранее в этой теме.
  2. Поместите log4j-xx.jar в WEB-INF\lib
  3. Проверьте, был ли загружен log4j: добавьте -Dlog4j.debug в конце опций java в tomcat

Надеюсь, это поможет.

rgds

112
ответ дан 24 November 2019 в 00:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: