Вот мой текущий файл 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, и он записывает туда фактический журнал.
Я понятия не имею, почему это происходит на моем компьютере и не происходит с другими людьми, использующими тот же код в моем офисе. Это заставляет меня чувствовать себя глупо, и я не могу этого понять. Кто-нибудь видел это раньше? Спасибо.
Спасибо. К сожалению, я пробовал это, но проблема по-прежнему та же. Он просто помещает новый файл src / log.txt на мой рабочий стол и записывает в него.
Ваш путь является относительным, так как он начинается с точки, поэтому путь будет построен относительно каталога, из которого вы запускаете tomcat, или по умолчанию пользователя. Используйте абсолютный путь, например c: \\ project \\ src \\ log.txt
Это действительно работает. Это так странно, что он не работает как относительный каталог для этого, но работает для других людей. Спасибо. Я просто буду придерживаться абсолютного пути в качестве обходного пути и оставлю, почему он помещает пустой файл журнала там, где он должен быть, и один на моем рабочем столе, который фактически используется, когда относительный, как загадка.
(Хотя теперь мой код не будет переносимым, если кому-то другому понадобится запустить его на своей машине).
Как вы запускаете свою программу? У вас есть командный файл / ярлык / ссылка для его запуска, который находится на вашем рабочем столе? А может как-то поменять рабочий каталог на рабочий стол?
В eclipse запустите на сервере (tomcat). Никакого ярлыка или чего-то подобного, я запускаю eclipse через меню «Пуск».
Лучший совет, который я могу придумать, - это добавить журнал для дампа текущего рабочего каталога, чтобы вы могли узнать, действительно ли он установлен на вашем рабочем столе. Если это не так, я бы сказал, что ваша конфигурация ведения журнала каким-то образом переопределена какой-либо другой конфигурацией. Попробуйте сравнить свое окружение с окружением ваших коллег, где-то должна быть разница.
Спасибо, я сделаю это. если мы это выясним (можем просто двигаться дальше), я опубликую, в чем была проблема, и решение, чтобы другие могли увидеть, сталкиваются ли они с проблемой.




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