Файл log4j случайно попадает на рабочий стол

Вот мой текущий файл log4j.properties:

# Root logger options. Where do we want to log to?
log4j.rootLogger = ALL, stdout, file

# define stdout log messages
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n


# define file log messages
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=src\\log.txt
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Примечание. Я использую компьютер с Windows и использую tomcat, поэтому я использую \\.

Этот код работает в другом проекте. Я вижу здесь разные похожие ответы, но ничего не решает эту конкретную проблему.

По какой-то причине, в частности, в этом проекте он создает пустой файл log.txt в соответствующем каталоге в моем проекте (% projectfolder% / src / log.txt), а затем каким-то волшебным образом фактический файл журнала создается в src на моем рабочем столе ... итак,% desktop% / src / log.txt, и он записывает туда фактический журнал.

Я понятия не имею, почему это происходит на моем компьютере и не происходит с другими людьми, использующими тот же код в моем офисе. Это заставляет меня чувствовать себя глупо, и я не могу этого понять. Кто-нибудь видел это раньше? Спасибо.

используйте log4j.appender.file.File =. / src / log.txt

Milaci 15.06.2018 17:46

Спасибо. К сожалению, я пробовал это, но проблема по-прежнему та же. Он просто помещает новый файл src / log.txt на мой рабочий стол и записывает в него.

Brandon 15.06.2018 18:07

Ваш путь является относительным, так как он начинается с точки, поэтому путь будет построен относительно каталога, из которого вы запускаете tomcat, или по умолчанию пользователя. Используйте абсолютный путь, например c: \\ project \\ src \\ log.txt

Luis Muñoz 15.06.2018 18:15

Это действительно работает. Это так странно, что он не работает как относительный каталог для этого, но работает для других людей. Спасибо. Я просто буду придерживаться абсолютного пути в качестве обходного пути и оставлю, почему он помещает пустой файл журнала там, где он должен быть, и один на моем рабочем столе, который фактически используется, когда относительный, как загадка.

Brandon 15.06.2018 18:43

(Хотя теперь мой код не будет переносимым, если кому-то другому понадобится запустить его на своей машине).

Brandon 15.06.2018 19:04

Как вы запускаете свою программу? У вас есть командный файл / ярлык / ссылка для его запуска, который находится на вашем рабочем столе? А может как-то поменять рабочий каталог на рабочий стол?

werner 15.06.2018 20:53

В eclipse запустите на сервере (tomcat). Никакого ярлыка или чего-то подобного, я запускаю eclipse через меню «Пуск».

Brandon 16.06.2018 21:41

Лучший совет, который я могу придумать, - это добавить журнал для дампа текущего рабочего каталога, чтобы вы могли узнать, действительно ли он установлен на вашем рабочем столе. Если это не так, я бы сказал, что ваша конфигурация ведения журнала каким-то образом переопределена какой-либо другой конфигурацией. Попробуйте сравнить свое окружение с окружением ваших коллег, где-то должна быть разница.

D.B. 17.06.2018 06:42

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

Brandon 17.06.2018 20:10
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
9
32
0

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